2番目のディレクトリ(移動/名前変更の追跡に使用)にファイル/ディレクトリへのハードリンクを含む「追跡」ディレクトリがあります。元のフォルダにあるものを削除すると、ハードリンクがまだ存在するため、ディスク領域が解放されません。したがって、この「追跡」ディレクトリを定期的にクリーンアップしたいと思います。したがって、ハードリンク数が1であるすべてのファイルを見つける必要があります。
ハードリンクカウントが1のすべてのファイルを再帰的に検索(および削除)する最も速い方法は何ですか?
find . -type f -exec ls -l {} \+ | grep -P "^.{11}1"
のようなことをしてから、さらに配管/再調整を行うことができることはわかっていますが、これは醜くて遅いです。よりクリーンで高速なものを探しています。
私のfind
には-links
オプション(私はUbuntu 14.04.5 LTSを使用しています)。他のハードリンクがないファイルを見つけるには、次を使用します。
find -type f -links 1
これらのファイルを削除するコマンドは次のとおりです。
find -type f -links 1 -exec rm -f {} +