1日後のファイルまたはディレクトリの削除中にエラーが発生しました。

1日後のファイルまたはディレクトリの削除中にエラーが発生しました。

次のコマンドを使用して、1日より古いファイルまたはディレクトリを削除できます。

find /u01/Release/* -mtime +1 -exec rm -r {} \;

しかし、このコマンドの出力にエラーが発生するのはなぜですか?

ls -lrt 
drwxr-xr-x 3 tomcat8 tomcat8      60 Oct  4 07:11 build_180
drwxrwxr-x 6 root    root        309 Sep 21  2017 redis-3.2.11
-rw-r--r-- 1 root    root    1550452 Oct  4 15:23 redis-3.2.11.tar.gz

find: ‘/u01/Release/redis-3.2.11’: No such file or directory

コマンドを実行した後

ls -lrt 
drwxr-xr-x 3 tomcat8 tomcat8      60 Oct  4 07:11 build_180
-rw-r--r-- 1 root    root    1550452 Oct  4 15:23 redis-3.2.11.tar.gz

ベストアンサー1

これはよく知られた問題です。問題は、findまずディレクトリを削除してからディレクトリ内のファイルを処理しようとすることです。回避策は、まずディレクトリの内容を処理してからディレクトリを削除することです。これが-depthまさにオプションです。

find /u01/Release/* -depth -mtime +1 -exec rm -r {} \;

これで問題が解決します。より短い形式の演算-delete(つまり-depth、)を使用することに興味があるかもしれません。

find /u01/Release/* -mtime +1 -delete

いつものようにman findあなたの友人。

おすすめ記事