0

ファイルが 60 日以上経過している場合にフォルダーからファイルを消去するシェル スクリプトに取り組んでいます。そのためにfindコマンドを使用しています。ファイルが存在するかのように、スクリプトがそのようなファイルを削除できるという要件がもう 1 つあります。60 日以上経過したファイルがない場合、コマンドでエラー メッセージが表示されないようにします。

find AA* -mtime +60 -exec rm {} \;

上記のコマンドを使用しています。60日以上経過したファイルがなく、ファイルが「AA」で始まっていない場合、「No such file or directory」というエラー メッセージが表示されます。コマンドに対してそのようなメッセージが報告されないようにします。

助けてください。

ティア。

4

2 に答える 2

2

おそらく、現在のディレクトリにターゲット、つまり AA* ファイルがありませんか?

に変えてみてはどうでしょうか

find . -name 'AA*' -mtime +60 -exec rm {} \;

または、「AA」で始まるファイルまたはディレクトリのみをチェックする必要がある場合は、-regex を使用できます。

find . -regex './AA.*' -mtime +60 -exec rm {} \;
于 2012-11-13T12:05:14.917 に答える
1

コマンドに対してそのようなメッセージが報告されないようにします。

コマンドの標準エラーをリダイレクトする/dev/null

... 2>/dev/null
于 2012-11-13T11:58:21.330 に答える