現在、ディレクトリに影響を与えるコマンドなしでサブディレクトリ内の特定のコマンドのみを実行できるコマンドを実行する方法を探しています。
find -name ":RUN" -exec rm -rf {} \;
私が取得したディレクトリ名がある場合、level0
サブディレクトリ名はですlevel1
。上記のコマンド例をディレクトリから実行すると、ディレクトリだけでなくlevel0
コマンドも影響を受けます。level1
level0
level1
実行時にディレクトリにのみ影響するコマンドを処理する方法はlevel0
?
答え1
言うと
探す -何 …あなたは実際に話しています
探す 。 -何 …つまり、検索は次から始まります。
.
(現在のディレクトリ)。サブディレクトリだけで検索したいので、それでも大丈夫です。探す ./*/-name ":RUN" -exec rm -rf {} ;名前が見つかりません。最初
.
。そのディレクトリが含まれていてbashを使用している場合は、まずこれを実行してくださいshopt -s dotglob
。
PS Naive、find */ -…
その名前のファイルが存在する場合は使用する方が安全ですfind ./*/ -…
。./*/
-
。
答え2
努力する:
find . -path './*/*' -type d -name ':RUN' -exec echo rm -rf -- {} +
-path './*/*'
同等のものに置き換えることもできます-mindepth 2
。