smk (12/26/82)
This program was developed from an idea by we13!rjk. He or she developed a program called uusquish to compact uucp directories. This program is basically an enhancement of that one called squish. Squish works (recursively, if desired) on mostly any directory. Squish tries as hard as it can not to mess up the file system, including correct values of those nasty .. entries in subdirectories involved. The squish program and man pages have been posted to net.sources. Squish uses the ndir package posted to the net a couple of times. It works on 4.1, and unless restrictions on link/unlink calls on directories are different from 4.1, squish should work on other UNIX systems. For those of you wanting to know what this is all about, as you probably know, UNIX doesn't shrink directories when a file is deleted. This is especially bad if you delete 1000 entries from a directory. The directory is still huge, and searching it is painful for UNIX, especially since most of the space is wasted. (Sound like the uucp problem, eh?) If the directory was especially large, indirect blocks may be used when they are no longer needed. Squish is especially useful on directories in /usr/spool, where every once in awhile there may be peaks in directory usage, but most of the time the amount of files existing there is much smaller. I want to thank we13!rjk for the uusquish idea. Squish is merely a more general uusquish. (We have /usr/spool/at and /usr/spool/mail directories that also needed squishing, which is why this came about.) --steve