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

OKWave 2007年12月13日 10時00分

  • このエントリーをはてなブックマークに追加
「*.txt」以外の全てのディレクトリ・ファイルを削除したい(Bシェルにて)

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

良回答

試していないので不安ですが・・・カレント・ディレクトリーより下にあるファイルを対象にした場合、下記のような find コマンドで可能と思います。


# find . -name *.txt -exec rm {} \;

 rm {} \; の意味は、 find . -name で見つけたファイルを rm コマンドに引き渡して実行するということで、『 {} 』が引き渡されるファイル名に置き換えられ『 \; 』は -exec オプションを使う時のオマジナイです

回答


rm *[^t][^x][^t]

じゃだめかな。

試していないけど。

正規表現は微妙に違うことがあるんで、充分確認してからやってね。

  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つ
    プレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?