ハードリンクを多数含むディレクトリの削除

ハードリンクを多数含むディレクトリの削除

大量のデータ (1 TB 以上) を含むディレクトリをクリーンアップしようとしています。多くのファイルはスペースを節約するためにハードリンクされています。これはビルドを保存するドライブであり、各ビルドには大量のメディア (数 GB) があるため、以前のビルド製品と同一のファイルはハードリンクされます。これらのディレクトリを削除しようとすると、非常に時間がかかる (1 秒あたり約 5 項目) ことに気付きました。

私の推測では、各ファイルへのハード リンクの数が多いため、削除に時間がかかるようです。このプロセスを高速化する方法はありますか。それとも、5/秒で数百万のアイテムを削除している状態のままでしょうか。

答え1

find . -inum [inode-number] -exec rm -i {} \;

このコマンドは、削除できる inode 番号を見つけて、参照されているデータを解放します。

テストできるようにインタラクティブ フラグを設定しました。

ああ、inode 番号を取得するには、ls -il名前と inode 番号を一緒に返す を実行することができます。

ファイルを inode で直接削除できれば改善されると思いますが、その方法がわかりません。

関連情報