• ベストアンサー

~以外を削除する場合(rmコマンド)

linuxのコマンドで ~以外のファイル、ディレクトリを全て削除したい時は どのような記述をすれば良いのでしょうか? シェルスクリプトではなくrmコマンド1つで削除したのいですが… 例: tar以外のファイル・ディレクトリを    すべて削除したい場合など どなたかご存知の方がいらっしゃったら 教えてください。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hchonan
  • ベストアンサー率79% (19/24)
回答No.1

rm コマンドのみという訳にはいきませんが基本的なコマンドを組み合わせると実現可能と思います。 「名前が tar で終わるもの以外のファイル・ディレクトリを削除する」場合だと ls | grep -v -E 'tar$' | xargs rm -r となります。 ファイルの一覧を取得し ( ls ) 'tar'で終わるもの以外を抽出し ( grep ) その結果を rm -r の引数に指定して実行 ( xargs ) という流れです。 ファイルを削除するような操作については失敗するとダメージが大きいので、事前にテストして動作を確認すると良いとおもいます。また rm -r -i としてそれぞれのファイルについて、削除の問い合わせをするのも有効です。

miho_kumi
質問者

お礼

正規表現(たとえば ^ )を使ってはやっぱり無理なんですね。ありがとうございました!勉強になりました。

関連するQ&A