「*.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]

じゃだめかな。

試していないけど。

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

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    レガシーデータ基盤からの脱却が AI 活用の鍵--先進企業に学ぶクラウド移行の成功事例

  2. ビジネスアプリケーション

    AI 人材育成を単なる研修で終わらせない--事業を動かす AI スキル構築の 5 つのステップ

  3. ビジネスアプリケーション

    汎用 AI をビジネス仕様に。業務データを活かす AI アプリ開発の新しい前提「データ基盤」

  4. 仮想化

    コンテナ化だけで十分なのか。商用パッケージ運用の負荷を左右するOpenShiftの価値

  5. 経営

    月15万円から始めるSOC。セキュリティ人材を雇えない企業の、取引を止めない経営判断

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]