• ベストアンサー

「*.txt」以外の全てのディレクトリ・ファイルを削除したい(Bシェルにて)

rm -rコマンドを使用して、「*.txt」以外の全てのディレクトリ・ファイルを削除したいのですが、正規表現の使い方が分かりません(それ以外を対象にするという方法が分かりません)。 またできれば、「*.txt」以外のディレクトリ・ファイルが存在しなくてもリターンコードは0が返ってきてほしいです。 どのようにすれば良いのでしょうか? 環境は、SolarisのBシェルです。

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

  • ベストアンサー
回答No.2

試していないので不安ですが・・・カレント・ディレクトリーより下にあるファイルを対象にした場合、下記のような find コマンドで可能と思います。 # find . -name *.txt -exec rm {} \;  rm {} \; の意味は、 find . -name で見つけたファイルを rm コマンドに引き渡して実行するということで、『 {} 』が引き渡されるファイル名に置き換えられ『 \; 』は -exec オプションを使う時のオマジナイです

その他の回答 (2)

  • qaaq
  • ベストアンサー率36% (146/404)
回答No.3

rm *[^t][^x][^t] じゃだめかな。 試していないけど。 正規表現は微妙に違うことがあるんで、充分確認してからやってね。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

find + xargs じゃダメなの?

関連するQ&A