Linuxで、指定したディレクトリをまるごと削除する最も高速な方法を教えてください。


ディレクトリ a の中に 20 万個のファイルがあります。
このディレクトリをまるごと削除したいのですが、rm -rf a だとかなり時間がかかるようです。
もっと速く消せる方法があれば教えてください。

※今回僕が扱っているのは NFS でマウントしたデータなので、rm -rf a で時間がかかるのはそのせいもありそうです (マウントしている先の NFS サーバは直接触れません)。そのため、できるだけ、特定のファイルシステムに依存しないやり方 (または、NFS を前提にしたやり方) をご回答頂けると嬉しいです。

※と言いつつ、今後役に立つかもしれないので、「ext3 ならこの方法で爆速だよ」みたいな回答にもポイントを配分させて頂きます。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/05/30 01:19:28
  • 終了:2012/06/04 23:18:01

ベストアンサー

id:y-kawaz No.2

y-kawaz回答回数1421ベストアンサー獲得回数2262012/05/30 11:36:52

ポイント130pt

ファイル数が多いものに関しては一般的な手段はありません。諦めて一晩とかかけてでも rm -rf をするしか無いともいます。

ただ、一刻も早くそのディレクトリを空にしたいだけであれば、以下のようにリネームによる対応が高速です。とりあえず空にしてちゃんとした削除は時間をかけて行う感じです。

mv a a.delete; mkdir a; rm -rf a.delete &
他3件のコメントを見る
id:y-kawaz

巨大ログを吐いてるプロセスをそのままに削除して見えない容量で混乱するのは結構あるあるな気が。
そういうときはリネームや削除して再起動が普通ですが、プロセスそのままでも echo > big_log て感じに上書きで空にしてしまうという荒技をたまにやりますw

では、おやすみなさい。

2012/06/05 00:25:55
id:sardine

その手があったか!
なんかチャットみたいになってますが、追加での回答ありがとうございました。
おやすみなさい!

2012/06/05 00:27:57

その他の回答(1件)

id:papa-tomo No.1

パパトモ回答回数362ベストアンサー獲得回数1072012/05/30 11:13:10

ポイント100pt

こんな方法があります。NFSではありませんが・・・

http://tomslabo.exblog.jp/13049582/

Winodwsが必要ですが・・・
もしかすると、Macから接続して削除した方が早いかもしれませんね。

id:sardine

回答ありがとうございます。
Samba 自体は使えないのですが、記事を読む限り、次の y-kawaz さんの回答と
同じように、「いったん移動しておいて、後で削除する」という仕組みみたいです。
であれば、NFS 経由でもできそうです。

2012/05/31 23:31:13
id:y-kawaz No.2

y-kawaz回答回数1421ベストアンサー獲得回数2262012/05/30 11:36:52ここでベストアンサー

ポイント130pt

ファイル数が多いものに関しては一般的な手段はありません。諦めて一晩とかかけてでも rm -rf をするしか無いともいます。

ただ、一刻も早くそのディレクトリを空にしたいだけであれば、以下のようにリネームによる対応が高速です。とりあえず空にしてちゃんとした削除は時間をかけて行う感じです。

mv a a.delete; mkdir a; rm -rf a.delete &
他3件のコメントを見る
id:y-kawaz

巨大ログを吐いてるプロセスをそのままに削除して見えない容量で混乱するのは結構あるあるな気が。
そういうときはリネームや削除して再起動が普通ですが、プロセスそのままでも echo > big_log て感じに上書きで空にしてしまうという荒技をたまにやりますw

では、おやすみなさい。

2012/06/05 00:25:55
id:sardine

その手があったか!
なんかチャットみたいになってますが、追加での回答ありがとうございました。
おやすみなさい!

2012/06/05 00:27:57

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません