[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:29968] backup ファイルの削除 (Re: Re: find の exec オプションが実行不可能)



佐野@浜松です。

In <20010922001502J.talko@xxxxxxxxxxxxxxx>,
  on "Sat, 22 Sep 2001 00:12:25 +0900',
   with "[debian-users:29963] Re: find のexec オプションが実行不可能",
 smith@xxxxxxxxxxxxxxx さん wrote:

> これでようやく、emacs(などなど)のバックアップファイルを削除することができます。
> ありがとうございました。

えっと、「バックアップファイルの削除」という目的なら

  # find . -name '*~' -print -exec rm -i {} \;

のように find の -exec を使うより、xargs を使ったほうが
システムへの負荷が少なくて良いのでは ?

たしか -exec だと対象となったファイルひとつひとつについて
プロセスが生成されるという話があったような。

あ、rm に -i オプションがついているのか。それが無ければ

  # find . -name '*~' -print |xargs rm

で済むんだけど。

ふーむ。例えば

  LIST=`tempfile`; find ~/Mail/ -name '*.~*' >$LIST; vi $LIST; rm $LIST

とかすれば vi で削除対象のファイルリストを編集した後
一気に削除、とかできそうだけど、どうかな ?

シェルスクリプトにして $HOME/bin とかに置いておけば
毎回打ち込まなくてもすむし。

あ、私は

alias purge='/usr/bin/find . -name "?*~" -o -name "?*.bak" -o -name ".[^.]?*~" -o -name ".*.bak" '
alias onepurge='/usr/bin/find . -name "?*~" -o -name "?*.bak" -o -name ".[^.]?*~" -o -name ".[^.]?*.bak" -maxdepth 1 '
alias mhpurge='/usr/bin/find $HOME/Mail/inbox/ $HOME/Mail/draft/ -name ",?*" -o -name "?*~" -o -name "\#?*" '
alias listpurge='(alias|grep purge)'

とかしてます。purge は現在のディレクトリ以下、全階層について
 *~ ?*.bak .[^.]?*~ .*.bak の 4 パターンでファイル検索、
 onepurge は現在のディレクトリだけで検索 (下に潜らない)、
 mhpurge は mh の不要ファイルを検索、です。$HOME で purge を
実行すると時間かかりすぎるので $HOME 直下のファイルだけ検索
できるように purge とは別に onepurge を用意しています。

これらのコマンドはリストアップするだけなので、最初にチェック
のために purge|lv とした後、purge|xargs rm で一気に削除、と
いうのをよく使ってます。

-- 
 # (わたしのおうちは浜松市、アカウミガメのふるさとの街)
   <kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)