大量のデータ (1 TB 以上) を含むディレクトリをクリーンアップしようとしています。多くのファイルはスペースを節約するためにハードリンクされています。これはビルドを保存するドライブであり、各ビルドには大量のメディア (数 GB) があるため、以前のビルド製品と同一のファイルはハードリンクされます。これらのディレクトリを削除しようとすると、非常に時間がかかる (1 秒あたり約 5 項目) ことに気付きました。
私の推測では、各ファイルへのハード リンクの数が多いため、削除に時間がかかるようです。このプロセスを高速化する方法はありますか。それとも、5/秒で数百万のアイテムを削除している状態のままでしょうか。
答え1
find . -inum [inode-number] -exec rm -i {} \;
このコマンドは、削除できる inode 番号を見つけて、参照されているデータを解放します。
テストできるようにインタラクティブ フラグを設定しました。
ああ、inode 番号を取得するには、ls -il
名前と inode 番号を一緒に返す を実行することができます。
ファイルを inode で直接削除できれば改善されると思いますが、その方法がわかりません。