2つのディレクトリ間のすべてのハードリンクファイルを見つける

2つのディレクトリ間のすべてのハードリンクファイルを見つける

複数のディレクトリにあるファイルへのハードリンクがあるかどうかはどうすればわかりますか?つまり、複数のディレクトリにあるファイルは同じファイルを参照しますか?

〜のように特定のファイルへのすべてのハードリンクを見つける方法は? [コピー]そして同じinode番号を持つすべてのファイルを一覧表示しますか?。しかし、検索する方法を知りたいです。どのハードリンクファイル異なるディレクトリ間

ベストアンサー1

find2つ以上のリンクがあるディレクトリ内のすべてのファイルのinode番号を一覧表示し、結果を並べ替え、同じinodeが複数回表示される行を抽出できます。

これらのディレクトリは同じファイルシステムになければなりません。

find dir1 dir2 ... -xdev -type f -links +1 -printf '%i %p\n' |
sort -n -k1,1 |
awk '{   same = ($1==last)
         if(!same)save = $0
         else{ if(save!=""){ print save; save = "" }
                print 
         }
         last = $1
}'

このコードはファイルとそのinodeを印刷します。

108743 /tmp/a1
108743 /tmp/a2-hardlink-to-a1

使用できない場合にfind使用されますls -i1

おすすめ記事