次のディレクトリツリーがあるとします。
ROOTDIR
└--SUBDIR1
└----SUBDIR2
└----SUBDIR3
入力するときは、次のコマンドを探しています。
$ [unknown command] ROOTDIR
ディレクトリツリー全体を削除できます。ツリー全体にファイルがなく、ディレクトリのみがある場合。しかし、SUBDIR1の下にhello.pdfというファイルがあるとします。
ROOTDIR
└--SUBDIR1
└--hello.pdf
└----SUBDIR2
└----SUBDIR3
その後、コマンドはSUBDIR2以下のみを削除する必要があります。
答え1
find ROOTDIR -type d -empty -delete
それは同じです
find ROOTDIR -type d -depth -empty -exec rmdir "{}" \;
ただし、組み込みの「-delete」操作を使用してください。
「-削除」は「-深さ」を意味します。
答え2
アレクシスは近かった。あなたがしなければならないことは次のとおりです。
find . -type d -depth -empty -exec rmdir "{}" \;
まず、最初の空のディレクトリが見つかるまでディレクトリツリーをドリルダウンしてから削除します。したがって、親ディレクトリを空にして削除するなどの操作を実行します。これはあなたが望む効果をもたらすでしょう。 (おそらく週に10回程度この作業を行うので、これが正しいと確信しています。) :-)
答え3
私はこれを試みます:
find ROOTDIR -type d -depth -exec rmdir {} \;
答え4
rmdir $(find ROOTDIR -type d | sort -r)