3

1日より古い特定のディレクトリを自動的に削除するプロジェクトに取り組んでいます。次のコードが機能しています。

find Directory/ -type d -name "Directory.To.Delete.*" -mtime +1 -exec rm -rf {} \;

正常に動作し、期待どおりにディレクトリ(およびコンテンツ)を削除しますが、常にエラーで終了します。

検索:ディレクトリにchdirできません/:そのようなファイルまたはディレクトリはありません

このエラーに直面せずにこのコードを実行する方法はありますか?ディレクトリを削除した後、なぜこのコードがchdirを試みているのかわかりません。

4

2 に答える 2

6

-prune前に追加-exec; findこれにより、一致ディレクトリへの入力が停止します。

.... -mtime +1 -prune -exec ...
于 2012-09-12T13:45:29.443 に答える
1

-type dの前に-depthを追加すると、findが一致するディレクトリに入るのも停止します。

# mkdir 1
# mkdir 2
# touch -d yesterday 1
# find . -depth -type d -mtime +0 -exec rm -rf {} \;
# ls
2

男から見つける:

   -prune True;  if  the file is a directory, do not descend into it. If -depth is given, false; no effect.  Because -delete implies -depth, you cannot usefully use -prune and -delete together.
于 2012-09-12T13:49:12.720 に答える