On 05/03/2023 01:00, Paul Eggert wrote: > On 2023-03-04 15:33, Christoph Anton Mitterer wrote: > >> But would symlinks (i.e. their length) count for it? > > Sure, because you can read symlinks by using readlink, and that gives > you their lengths. > > Come to think of it, POSIX specifies st_size only for regular files and > symlinks among the files you'll find in a directory. So du --apparent > should count st_size only for these file types; it should ignore st_size > for other file types unless we know somehow that those sizes make sense > (which for directories is problematic for the reasons you mention). > > >> What about hardlinked files, would they count once or n times? > > That's an independent axis and is handled by -l. Hard links are not a > file type. > > >> b block (buffered) special >> c character (unbuffered) special >> d directory >> p named pipe (FIFO) >> f regular file >> l symbolic link >> s socket >> D door (Solaris) > > I expect Coreutils's already-existing usable_st_function should tell us > which types have usable st_size. This will exclude directories, which > should be the right thing for your use case. > > > So I installed the attached patch to fix du --apparent to count sizes > only when st_size is well-defined. This should address your use case so > I'm boldly closing the bug report. The attached adjusts the du/threshold test to pass by avoiding testing --apparent with dirs cheers, Pádraig