質問: ~以外を削除する場合(rmコマンド) linuxのコマンドで ~以外のファイル、ディレクトリを全て削除したい時は どのような記述をすれば良いのでしょうか? シェルスクリプトではなくrmコマンド1つで削除したのいですが... 例: tar以外のファイル・ディレクトリを すべて削除したい場合など どなたかご存知の方がいらっしゃったら 教えてください。よろしくお願い致します。
回答: rm コマンドのみという訳にはいきませんが基本的なコマンドを組み合わせると実現可能と思います。 「名前が tar で終わるもの以外のファイル・ディレクトリを削除する」場合だと ls | grep -v -e 'tar$' | xargs rm -r となります。 ファイルの一覧を取得し ( ls ) 'tar'で終わるもの以外を抽出し ( grep ) その結果を rm -r の引数に指定して実行 ( xargs ) という流れです。 ファイルを削除するような操作については失敗するとダメージが大きいので、事前にテストして動作を確認すると良いとおもいます。また rm -r -i としてそれぞれのファイルについて、削除の問い合わせをするのも有効です。