1

次のようなfindコマンドを使用するスクリプトがあります(一部の特別なディレクトリを除く古いファイルを削除します)

find /data/foo -mtime 30 -and -not -samefile /data/foo -and -not -samefile /data/foo/specialdir -delete

現在、同じスクリプトが複数のマシンで使用されており、一部のマシンではその /data/foo/specialdir が利用できません。これにより、「find: /data/foo/specialdir: No such file or directory」というエラーが発生します。

そこにそのディレクトリを作成することはできますが、xyz が存在しない場合に "-not -samefile xyz" (または同様のもの) を機能させる他の方法はありますか?

br, トウコ

編集:元の質問のコマンドの最後に -delete を忘れていました

4

1 に答える 1

1

2ライナーにすることができます:

test -d /data/foo/specialdir || test_specialdir='-and -not -samefile /data/foo/specialdir'
find /data/foo -mtime 30 -and -not -samefile /data/foo "$test_specialdir"
于 2012-04-10T12:42:25.143 に答える