aの使用*が事実上避けられない状況がたくさんありrm -rf *ます-例えば、何千ものサブフォルダーとファイルを保持するフォルダー内。
しかし、rmコマンドから1つまたは2つのファイルまたはフォルダーのみを除外する場合はどうでしょうか。私は自分のやり方をグーグルで調べましたが、ここでfind . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;述べたような非常に複雑なソリューションしか見つかりませんでした。
より簡単な方法でこれを行う可能性はありfindますか?例えばrm -rf --exclude='one' --exclude='two' --exclude='three' *、rsyncのようなものrm -rf -e 'one','two','three' *ですか?
たぶんから物事を除外するためにも、一般的な可能性*(のようなので、他のコマンドはcp、mv...自分自身を実装する必要はありませんか)?のようなもの*{'one','two','three'}ですか?
mv -t /tmp one two three && rm -rf * && mv -t . /tmp/one /tmp/two /tmp/three、明示的に何かを除外する可能性を与えるソリューションを好むでしょう*。確かに、ファイルを別の宛先に移動またはコピーすることがオプションではない状況があります。
findは、この--deleteオプションで使用します(rm各ファイルに対して実行する必要はありません。これは不必要なオーバーヘッドです)。