私はこの次のコードを持っています:
find ./ -iname '*phpmyadmin' -exec rm -rf {} \;
phpmyadmin
というディレクトリを削除しますが、しないphpMyAdmin-Version-XYZ.Zip
というファイルを削除します
-rf
を削除しても、削除されません(おそらく、-inameの2番目の問題が大文字と小文字の区別に影響を与えないためです)。
-iname
を追加しても効果がないのはなぜですか?注:man rm
に「deleteanyinode」引数が見つかりませんでした。
問題は、パターン*phpmyadmin
を使用して、phpmyadmin
(case-insensitively)で終わるファイルを照合していることです。文字列phpmyadmin
(大文字と小文字を区別しない)を含むファイルを取得するには、-iname '*phpmyadmin*'
を使用します。
find ./ -iname '*phpmyadmin*' -exec rm -rf {} \;
おそらく、削除する前に一致したファイルを取得するのは正気でしょう。
find ./ -iname '*phpmyadmin*'
最初の質問に答えるために、ユーザースペースのrm
にはiノードを処理するオプションがありません。
find ./ -iname '*phpmyadmin*' -exec /usr/lib/klibc/bin/nuke {} +
これは、誰かが-phpmyadminディレクトリを作成した場合でも機能します。