ディレクトリ a の中に 20 万個のファイルがあります。
このディレクトリをまるごと削除したいのですが、rm -rf a だとかなり時間がかかるようです。
もっと速く消せる方法があれば教えてください。
※今回僕が扱っているのは NFS でマウントしたデータなので、rm -rf a で時間がかかるのはそのせいもありそうです (マウントしている先の NFS サーバは直接触れません)。そのため、できるだけ、特定のファイルシステムに依存しないやり方 (または、NFS を前提にしたやり方) をご回答頂けると嬉しいです。
※と言いつつ、今後役に立つかもしれないので、「ext3 ならこの方法で爆速だよ」みたいな回答にもポイントを配分させて頂きます。
ファイル数が多いものに関しては一般的な手段はありません。諦めて一晩とかかけてでも rm -rf をするしか無いともいます。
ただ、一刻も早くそのディレクトリを空にしたいだけであれば、以下のようにリネームによる対応が高速です。とりあえず空にしてちゃんとした削除は時間をかけて行う感じです。
mv a a.delete; mkdir a; rm -rf a.delete &
こんな方法があります。NFSではありませんが・・・
http://tomslabo.exblog.jp/13049582/
Winodwsが必要ですが・・・
もしかすると、Macから接続して削除した方が早いかもしれませんね。
回答ありがとうございます。
Samba 自体は使えないのですが、記事を読む限り、次の y-kawaz さんの回答と
同じように、「いったん移動しておいて、後で削除する」という仕組みみたいです。
であれば、NFS 経由でもできそうです。
ファイル数が多いものに関しては一般的な手段はありません。諦めて一晩とかかけてでも rm -rf をするしか無いともいます。
ただ、一刻も早くそのディレクトリを空にしたいだけであれば、以下のようにリネームによる対応が高速です。とりあえず空にしてちゃんとした削除は時間をかけて行う感じです。
mv a a.delete; mkdir a; rm -rf a.delete &
巨大ログを吐いてるプロセスをそのままに削除して見えない容量で混乱するのは結構あるあるな気が。
そういうときはリネームや削除して再起動が普通ですが、プロセスそのままでも echo > big_log て感じに上書きで空にしてしまうという荒技をたまにやりますw
では、おやすみなさい。
その手があったか!
なんかチャットみたいになってますが、追加での回答ありがとうございました。
おやすみなさい!
巨大ログを吐いてるプロセスをそのままに削除して見えない容量で混乱するのは結構あるあるな気が。
2012/06/05 00:25:55そういうときはリネームや削除して再起動が普通ですが、プロセスそのままでも echo > big_log て感じに上書きで空にしてしまうという荒技をたまにやりますw
では、おやすみなさい。
その手があったか!
2012/06/05 00:27:57なんかチャットみたいになってますが、追加での回答ありがとうございました。
おやすみなさい!