ターゲット文字列を持たないすべてのファイルを削除しますか?

ターゲット文字列を持たないすべてのファイルを削除しますか?

復元されたファイルは/ myPhotorecに保存されます。

目標は、次の場合に各ファイルを再帰的にgrepすることです。いいえ「44c9ea3abbd24」という文字列があります。文書内容(ファイル名ではありません)削除してください。ターゲットはPython .pyファイルで、ファイルの回復名に応じてランダムに名前が変更されます。

これが不可能な場合は、含まれているファイルを/ filteredディレクトリにコピーしますか?

答え1

find /myPhotorec -type f ! -exec grep -qF '44c9ea3abbd24' {} ';' -print -delete

これはディレクトリ内または下ですべての一般ファイルを探し/myPhotorec、与えられた文字列(ファイルの内容に)が含まれているかどうかをテストし、文字列を含まない各ファイルのパス名を表示して削除します。

findサポートしていない場合は、-deleteその部分を-exec rm {} +

各削除を手動で確認するには、-deleteに変更します-ok rm {} ';'

についてfind ... -exec ...「find」の-execオプションについて

答え2

私はこれをしたいと思います:

rm -rf `find /myPhotorec -name "*" | grep  -v "44c9ea3abbd24"`

関連情報