How can I search all empty files of non-root system and delete them?

  • Saying "Unix" is very vague. There are many unix-like OSs. You should specify the actual OS.
    – Wuffers
    Apr 3, 2011 at 23:15

2 Answers 2

find /path/to/mountpoint -empty -type f -delete

If your find does not have -delete option, replace it with -exec rm '{}' ';'

If you want to delete all empty files except for files directly under / run:

find / -mindepth 2 -empty -type f -delete

If you want to delete all empty files, but skip whole /root directory run

find / \( -path /root -prune \) -empty -type f -delete
  • i want to say that / includes many directories between them there is the root ,so i want to execute a find command on all the empty files on / except those on the root directory ?
    – maalem
    Apr 2, 2011 at 21:27
  • You mean you want to skip /root from cleaning? If so, I modified my answer. If not so, please give an example. Apr 3, 2011 at 6:58

find . -size 0 -print.

replace -print with -delete and . with the directory you need, but execute carefully, it will really delete all empty files.

  • thanks, but i want to remove also all empty files of non root directory ,and not in a specific directory ?
    – maalem
    Apr 2, 2011 at 20:46
  • how can i execute that command on all the files except those on the root directory ?
    – maalem
    Apr 2, 2011 at 20:56
  • @maalem: you can specify multiple directories instead of .. They can a result of another find, not sure how to specify the depth to find dirs in the root dir only (have no chance to test now, try man find).
    – khachik
    Apr 2, 2011 at 21:04
  • @maalem, @khachik, i modify the answer to reflect your comments here (if i understood your intent correctly...) Apr 2, 2011 at 21:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy