Patrick O'Callaghan wrote: > On Thu, 2008-03-13 at 19:48 -0700, Dean S. Messing wrote: > > I have a sequence of directories that have many multiply > > (cross)hardlinked files, and I'd like to see what their > > "true" sizes are. These dirs are backup directories > > created with something like: > > > > rsync -a --delete --link-dest=/mnt/bkup/backup_A/ \ > > /dir_to_back_up /mnt/bkup/backup_B/ > > > > By "true" sizes I mean this: > > > > Say backup_A was created first. If I do `du_true > > backup_A' I shd. see its size. Now I delete some files > > in "/dir_to_back_up" and create some other new files. > > Now I create "backup_B" with the above rsync command. I'd > > like for my mythical `du_true' to compute the > > incremental change in size from backup_A to backup_B. > > > > This seems like a non-trivial problem but maybe I'm just > > missing something simple. > > What's wrong with "subtract 'du -s backup_B' from 'du -s backup_A'"? I don't think this works for what I want. If backup_A and backup_B happened to be the same size but each file in each directroy was linked just once, your solution would give back 0 when, in fact, the amount of space occupied by the the two directories is their sum. I think the solution requires simultaneous knowledge of both directories so that two files, one in backup_A and one in backup_B that are hardlinked together are counted just once. > If this isn't what you mean, then you need to explain it better. The > concept of files being "in" a directory is just a convenient fiction. > Both backup_A and backup_B are just sets of hard links. Appologies if I wasn't clear. The post by Roberto Ragusa in this thread gives both the solution and a clear idea of what I was looking for. Apparantly `du' has the smarts to figure out differential directory sizes, although it's not clear from the man page. Dean