SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
てるてる動画

【linux】find -exec rm で「そのようなファイルやディレクトリはありません」とは?

問題

あるディレクトリの配下を定期的に掃除するために、以下のようなコマンドを実行しているのですが、「そのようなファイルやディレクトリはありません」のエラーが発生します。

find /var/log/hoge -type d -exec rmdir {} \;

答え

ディレクトリを削除すると、findがさらにその子ディレクトリがないか見ようとしたときに「無い!」ということで、エラーメッセージが出るらしい。

こんなディレクトリがあるとして、

$ find . -type d
.
./fff
./fff/x
./fff/x/z
./fff/x/y
./eee
./ddd
./aaa
./aaa/bbb
./aaa/ccc

以下のように文句を言われ、

$ find . -type d -exec rmdir {} \;
rmdir: failed to remove `.': 無効な引数です
rmdir: failed to remove `./fff': ディレクトリは空ではありません
rmdir: failed to remove `./fff/x': ディレクトリは空ではありません
find: `./fff/x/z': そのようなファイルやディレクトリはありません
find: `./fff/x/y': そのようなファイルやディレクトリはありません
find: `./eee': そのようなファイルやディレクトリはありません
find: `./ddd': そのようなファイルやディレクトリはありません
rmdir: failed to remove `./aaa': ディレクトリは空ではありません
find: `./aaa/bbb': そのようなファイルやディレクトリはありません
find: `./aaa/ccc': そのようなファイルやディレクトリはありません

でも空のディレクトリの削除は成功している。

$ find . -type d
.
./fff
./fff/x
./aaa

関連するメモ

コメント