findコマンドで空ファイル(0バイト)の削除する
findコマンドを利用して0バイトのからファイルを一括削除する方法
0バイトの空ファイルを一括削除したい場合、findコマンドを利用すれば簡単に一括で削除する事ができます
空ファイル、空ディレクトリを一括で削除する
findの「empty」を利用すると空ファイルと空ディレクトリを一括で削除できます
書式:find [PATH] -empty -delete
以下では、testディレクトリに空ファイルと空ディレクトリがあります。test.log, test.txtが空ファイルでtest2.txtが容量があるファイルとなっています。test1ディレクトリが空のディレクトリとなっています。
これを、find test/ -empty -delete とすれば、空ファイル、空ディレクトリとも削除することができます。
また、deleteのオプションが使えない場合は、xargs、exec を使用しても削除できます
書式:find [PATH] -empty | xargs rm -rf
書式:find [PATH] -empty -exec rm -rf {} \;
$ ls -l test/ total 4 drwxrwxr-x 2 expdev expdev 6 Jan 13 14:40 test1 -rw-rw-r-- 1 expdev expdev 9 Jan 13 14:41 test2.txt -rw-rw-r-- 1 expdev expdev 0 Jan 13 14:40 test.log -rw-rw-r-- 1 expdev expdev 0 Jan 13 14:40 test.txt # 空ファイル、空ディレクトリがあるか確認します $ find test/ -empty test/test.txt test/test.log test/test1 # 空ファイル、空ディレクトリを削除します $ find test/ -empty -delete # 空ファイル、空ディレクトリ以外は削除されています $ ls -l test/ total 4 -rw-rw-r-- 1 expdev expdev 9 Jan 13 14:41 test2.txt # xargs を使用する場合 $ find test/ -empty | xargs rm -rf # exec を使用する場合 $ find test/ -empty -exec rm -rf {} \;
空ファイルのみ、findコマンドで一括で削除する
空ディレクトリを残しておいて空ファイルのみを削除する場合も、empty のオプションが利用して、typeオプションでファイルを指定すると、空ディレクトリを残しておいてからファイルのみ削除できます
書式:find [PATH] -type f -empty -delete
書式:find [PATH] -type f -empty | xargs rm -rf
書式:find [PATH] -type f -empty -exec rm -rf {} \;
# delete を使用する場合 $ find . -type f -empty -delete # xargs を使用する場合 $ find . -type f -empty | xargs rm -rf # exec を使用する場合 $ find test -type f -empty -exec rm -rf {} \; # からファイルのみを削除できます $ ls -l test total 4 drwxrwxr-x 2 expdev expdev 6 Jan 13 14:40 test1 -rw-rw-r-- 1 expdev expdev 9 Jan 13 14:41 test2.txt
空ディレクトリのみ、findコマンドで一括で削除する
空ファイルを残しておいて空ディレクトリのみを削除する場合も、empty のオプションが利用して、typeオプションでディレクトリを指定すると、空ファイルを残しておいてからディレクトリのみ削除できます
書式:find [PATH] -type d -empty -delete
書式:find [PATH] -type d -empty | xargs rm -rf
書式:find [PATH] -type d -empty -exec rm -rf {} \;
# delete を使用する場合 $ find . -type d -empty -delete # exec を使用する場合 $ find . -type d -empty | xargs rm -rf # exec を使用する場合 $ find test -type d -empty -exec rm -rf {} \; # からファイルのみを削除できます $ ls -l test total 4 -rw-rw-r-- 1 expdev expdev 9 Jan 13 14:41 test2.txt -rw-rw-r-- 1 expdev expdev 0 Jan 13 14:40 test.log -rw-rw-r-- 1 expdev expdev 0 Jan 13 14:40 test.txt
ディスカッション
コメント一覧
まだ、コメントがありません