現在、私は複数のディレクトリを持っています
Directory1 Directory2 Directory3 Directory4
これらの各ディレクトリにはファイルが含まれています(ファイルはやや不可解です)
私がやりたいのは、フォルダ内のファイルをスキャンして、特定のファイルが存在するかどうかを確認し、そのフォルダをそのままにしておく場合、特定のファイルが存在しない場合は、ディレクトリ全体を削除することです。これが私が意味することです:
.passという単語を含むファイルを検索しています。ファイル名に。ディレクトリ4に、探しているファイルがあると言う
Direcotry4:
file1.temp.pass.exmpl
file1.temp.exmpl
file1.tmp
残りのディレクトリには、その特定のファイルがありません。
file.temp
file.exmp
file.tmp.other
だから私はDirectory1、2、3を削除したいのですが、Directory4だけを残します...
これまでのところ、私はこのコードを思いついた
(arrはすべてのディレクトリ名の配列です)
for x in ${arr[@]}
do
find $x -type f ! -name "*pass*" -exec rd {} $x\;
done
私がこれを行うことを考えた別の方法は次のようなものです:
for x in ${arr[@]}
do
cd $x find . -type f ! -name "*Pass*" | xargs -i rd {} $x/
done
これまでのところ、これらは機能していないようで、何か間違ったことをしてすべてのファイルを削除してしまうのではないかと心配しています.....(バックアップしました)
これを行う方法はありますか?Directory 4を変更せず、その中のすべてを保持したいことを忘れないでください