• ベストアンサー

◆指定ファイル以外は全て削除

いつもお世話になっています。 カレント以下の指定ファイルは全て削除は以下のような記述でできるのですが。 find . -name '.html' -exec rm {} \; カレント以下の指定ファイル"以外は"全て削除したい場合はどのような記述でしょうか?

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

  • ベストアンサー
  • chiizan
  • ベストアンサー率100% (1/1)
回答No.1

NOT 条件を以下のように付けることで可能になりますでしょうか。 find . \! -name '.html' -exec rm {} \;

参考URL:
http://ygiants.blogspot.com/2007/12/txt.html

関連するQ&A

  • ファイルを検索して削除する

    /www 以下のディレクトリーに aaa.txt というファイルが存在する場合、 そのファイルが存在するディレクトリー内の全ての ***.txt を削除したいです。 find /www -name aaa.txt | xargs rm だと、aaa.txt だけの削除になります。 以下も考えましたが、これだと検索対象ディレクトリーが /www だけになります。 #!/bin/bash if test -e /www/aaa.txt then rm -f /www/*.txt fi どのように記述するとよいでしょうか。

  • AIXでの指定ディレクト以下の全ファイル削除について

    お世話になっております。 AIX5.1のOSで、指定ディレクトリ以下(ファイルのみしか存在しない)ファイルを全て自動で削除するようにシェルを組むことは可能でしょうか? 以下のようにシェルを作成しましたが、ファイル数が多すぎるらしくエラーで削除することができませんでした。 ちなみに、ファイル数は約4000以上あります。 rm -f /(指定ディレクトリ)/* ファイル数が多くても削除できるようにしたいのですが、何かよい方法はありますでしょうか? 以上宜しくお願い致します。

  • Solarisで0byteのファイルのみ削除したい

    Solaris11.3環境です。 以下のような構成のディレクトリがあるとします。 ---------------------------------------------- /var/tmp/KOTEI/END/ /var/tmp/組織コード/END/ ---------------------------------------------- この配下にシステムでファイルが大量に作成されるのですが、その中には0byteのファイルも含まれます。 この0byteファイルが1ヶ月で10万個近く溜まってしまうので、シェルで自動削除しようと考えています。 ファイル名に関わらず、0byteファイルは全て削除します。 以下のようなコマンドを考えたのですが、問題ないかご意見いただけないでしょうか? ---------------------------------------------- find /var/tmp/KOTEI/END -size 0c -exec rm {} \; find /var/tmp/*/END -size 0c -exec rm {} \; ---------------------------------------------- 一番怖いのは、0byteでない、データが含まれているファイルも誤って削除してしまうことです。 また、組織は変更になる可能性があるため、"*"にすることで対応できているか不安です。 是非アドバイスの程、よろしくお願い致します。

  • 古いファイルを削除したいのですが。。。

    こんにちわ。 findコマンドを使って、あるディレクトリにどんどんできるファイルの古くなったものを削除したいのです。 例えば、7日以上更新がないものを削除したく、 # find /hoge/backup -mtime +7 -a -type f -exec rm -f {} \; というコマンドを実行してみましたが、結果は、削除されず残ったままで、しかも一部のファイルが元々古い日付だったものが、実行日時でタイムスタンプが書き変わってしまってます。 シェルはbashでもcshで試しても同じでした。 どうすればよいかご教示お願いできますでしょうか?

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

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

  • Unixでファイルを削除するとき、「~~を除いて」削除する、は?

     Unixで、カレントディレクトリにたくさんのファイルがあって、 そのうちの一つとか二つのファイルのみ残して あとはみんな削除したいとき、 どのようにすればよいのでしょうか。 rm * とすると、みんな消えてしまいます。 もっとも、私の環境では .cshrcに alias rm 'rm -i'  と書いてあるため、削除するときにいちいち確認を取ってきます。 そのときに 削除しないものには n(no)と入力すればよいのですが、 ファイルがたくさんあると いちいち見るのも面倒になって、 y(yes)をどんどん入力してしまって削除してしまう恐れがあります。 コマンドを入力するときに 削除しないものを指定できないでしょうか。 Unixの初級者なので、そのおつもりでご解答いただくとうれしいのですが。。。

  • メールのキューの削除

    /var/spool/mqueueにファイルが沢山溜まっています。 rmで単に削除しても大丈夫でしょうか? findの exec?パラメータを使って、1ヶ月前までのメールスプールを削除する描き方も知りたいです。

  • 未使用で一定期間以上経過したファイルの削除

    未使用で一定期間以上経過したファイル(例えばTemp内にあって一週間更新されていないファイル)を自動的に削除するバッチファイルを作成したいと考えています。 何かうまい方法はないでしょうか? unixでの find /temp -mtime +7 -exec rm {} \; のfindにあたるようなのがあれば非常に助かります。

  • 1週間経過したファイルを削除 かつ最新のファイルは残しておきたい

    こんばんは、初投稿になります。 現在Linux系サーバのファイル管理を行っているのですが /tmpディレクトリに定期的ファイルが作成される設定にしております。 そこで1週間以上経過したファイルは削除し、かつ最新のファイルは 1つは残すような仕組みにしたいのですが…cronに登録し find /tmp -mtime +7 -type f -exec rm -fr {} \; をしてみたのですが、10日更新されなかった場合は全てのファイルが消えてしまいます。最新のファイルだけは残せる方法をご存知でしたら 教えてください。 よろしくお願いします。

  • 指定以外のファイルやフォルダを削除したい。

    デスクトップ上にあるファイル、フォルダの内、 指定したファイル、フォルダ以外を削除するBATファイル、 もしくはVBSを作成したいのですが、 どのような記述をすれば良いのでしょうか? OSはWindows2000 server SP4です。 どなたかご教示よろしくお願いいたします。 例: デスクトップに以下の2つのファイルと1つのフォルダがあり、 これ以上デスクトップにファイルやフォルダを増やしたくないのですが、 「hoge2.txt」 「hoge.lnk」 「hoge」 誤って以下のファイルとフォルダを作成してしまいました。 「hoge1.txt」 「hoge.jpg」 「hoge2」 「hoge2.txt」と「hoge.lnk」「hoge」は常にデスクトップに残し、 「hoge1.txt」と「hoge.jpg」「hoge2」を一括削除したい。