2017-04-12 18 views
-1

無視:dirが空でない場合のUbuntu - ディレクトリを削除し、私はUbuntuのためのcronジョブを作成しようとしているファイルタイプ

  • のdirのすべての空があれば、それを削除する必要があります
  • を削除する必要がありますが唯一のファイルタイプがTXTまたはCSVファイル

ている現在、私は持っている:

find /path -depth rmdir {} \; 2>dev/null 

私はデルには何が必要なのかtxtまたはcsvファイルしか持たないフォルダはありませんか?

すべてのtxtファイルやcsvファイルは削除しません。他のファイルタイプを含まないフォルダだけを削除します。

追加例: Dir1内

  • SubDir1

    • SubSubDir1

      • FILE.TXT

      • file.csvになり

  • SubDir2

    • SubSubDir2

      • File.xml

SubSubDir1は削除する必要があります。 SubDir1とDirは空になっているので、削除する必要があります。 SubSubDir2には別のファイルタイプが含まれているため、削除しないでください。

+1

このようなスクリプトを試す前に、適切なバックアップがあることを確認してください。 –

+1

@PaulRあなたの警告をありがとう。バックアップは既に完了しています – DasBen

+1

あなたが何をしているのか分かるまで、エラーメッセージを破棄するのはあまりお勧めできません。 – tripleee

答えて

0

次のようなもので、フォルダ内のファイル数を一覧表示することができます:フォルダが空であるか、またはフォルダが独占的にTXTやCSVファイルが含まれ、それは1

とを印刷するものとした場合

find "$d" -maxdepth 1 -not -iname '*.csv' -a -not -iname '*.txt' | wc -l 

find /path -depth -type d 

すべてのすべては、あなたとあなたが望むものを達成することができる場合があります:彼らは台無しあなたが最初の両親を消去した場合、互いないようにフォルダを一覧表示するを

while read d 
do 
    if [ $(find "$d" -maxdepth 1 -not -iname '*.csv' -a -not -iname '*.txt' | wc -l) -eq 1 ] 
    then 
    rm -rf "$d" 
    fi 
done < <(find /path -depth -type d) 
しかし、私はあなたの同意なしにあなたのcronがあなたのストレージを拭き取らないように、どこかに小切手を提唱します。

+0

すばらしい解決策。どうもありがとうございました! – DasBen

関連する問題