This gives you list of deleted files in your filesystem occupying space (as still open):
find /proc/*/fd -ls 2>/dev/null | grep '(deleted)' However piping filenames of file descriptors return size 0 :
find /proc/*/fd -ls 2>/dev/null | grep '(deleted)' \ | sed 's!.*\(/proc[^ ]*\).*!\1!' | xargs ls -lhas As they have still content , using wc -c provides the size :
find /proc/*/fd -ls 2>/dev/null | grep '(deleted)' \ | sed 's!.*\(/proc[^ ]*\).*!\1!' | xargs wc -c | sort -nr |head -n 20 Example:
2809946696 total 2387677184 /proc/15050/fd/26 67108864 /proc/1626/fd/23 67108864 /proc/1059/fd/6 10485760 /proc/11417/fd/298 10485760 /proc/11417/fd/239 10485760 /proc/11417/fd/155 10485760 /proc/11366/fd/499 However, is there a better way (than wc -c of file descriptors marked as (deleted)) to find out which files occupy most space? (or even better, which process occupy most space as keeping open handles to deleted files?)