例外ファイル内のファイルを除いて、ディレクトリから古いファイルを削除します。

例外ファイル内のファイルを除いて、ディレクトリから古いファイルを削除します。

別のディレクトリにある珍しいファイルに名前が格納されているいくつかのファイルを除いて、ディレクトリから古いファイル(60日以上)を削除するシェルスクリプトを作成しています。

次のコマンドが1つの例外ファイルに対して機能することを知っていますが、例外ファイルのリストを確認する必要があります。

find . ! -name 'file.txt' -type f -exec rm -f {} +

答え1

ファイル名が一般名(改行文字を含まないなど)と仮定すると、次のように動作します。

find . -mtime +60 | fgrep -v -x -f exceptions.txt | xargs -d '\n' rm -f

まず、ドライランを実行してrm -f交換してください。印刷物ls -1と同じようにパスを配置します。findexceptions.txt

答え2

そのようなオプションがないと思います。除外リストビルドコマンドをfind使用できます。printf

find . -name "*.txt" $(printf "! -name %s " $(cat file.txt)) -mtime +60 -exec rm -f {} +

file.txtfindコマンドから除外するファイルのリストがあります。

関連情報