作業中に特定のディレクトリをスキップできるかどうかを知りたいですrm -rf
。
たとえば、場所には次のサブフォルダが含まれています(実際はこれは単なる例です)。
foo
bar
elf
qrs
たとえば、このディレクトリでスクリプトの実行中にrm -rf *
削除をスキップできるかどうかを知りたいと思いますelf
。
通常、各ディレクトリをコマンドに渡すことができますが、rm -rf foo bar qrs
私の場合は複数のシステム用のスクリプトにあるため、システムごとに異なるフォルダがあります。たとえば、システム 1 には次のものが含まれます。
foo
bar
elf
qrs
system2 には以下を含めることができます。
ubt
dbn
arc
elf
gnt
rm -rf
を除くすべての項目を削除し、コマンドを同じにしたいと思いますelf
。
これは可能ですか?
よろしくお願いします。
答え1
~によるとこれ組み込み除外機能はありませんrm
。ただし、この資料では、いくつかのシェルコマンドを使用して同じ結果を得るためのさまざまな方法について詳しく説明します。
最初の方法が最適なようです。
important.txtという名前のファイルを除くすべてのファイルを削除します。
rm !(important.txt)
答え2
考えられる解決策の1つ:
find -type d ! -name "elf" -delete