Question regarding reported directory sizes.

Cordula's Web cpghost at cordula.ws
Tue May 25 08:35:56 PDT 2004


> I have a very large directory (say, a mail spool) whose directory entry is 
> approx 606K..
> drwx------  5 cyrus  cyrus  606208 May 25 10:29 .
> Now.. That directory had a lot of files in it.  However, after deleting all 
> of the files in that directory, the directory entry's size stays the same. 
> I realize this is fairly unimportant, however is there a way to 'garbage 
> collect' that directory entry and all others like it?

Have you tried the obvious?
  1. mkdir tmpdir
  2. mv everything from olddir/* to tmpdir,     [*]
  3. rmdir olddir
  4. mv tmpdir olddir

[*] "mv olddir/* tempdir" may not work if you have many files left.
    Use a script, find(1), tar(1) or whatever you feel comfortable
    with, instead.

The directory could be in theory compacted, but only if it is not
in use (i.e. not mapped in the kernel's VNODE(9)s). It's perhaps
too cumbersome to create a syscall that would do this.

> Thanks!
> Jason DiCioccio

-- 
Cordula's Web. http://www.cordula.ws/



More information about the freebsd-questions mailing list