一部のデータを移動しようとしていますが、まずデータのサイズが正しいことを確認したいと思います。ただし、次のようにフォルダを確認すると問題が発生します。
du -sh myfolder/
780M myfolder/
しかし、
du -sh *
..
71M myfolder
..
隠しファイルに関連していると思いましたが、この特定のフォルダには何も含まれていません。
私は何を逃したことがありませんか?
答え1
myfolder
アルファベット順にソートする前に、サブディレクトリに別のハードリンクを含む709MBファイルが含まれる可能性がありますmyfolder
。このdu
コマンドは、各固有ファイルが最初に表示されたときにのみ報告されるため、ファイルにオーバーレイが実行されるツリー内に複数のリンクがある場合は、最初に移動されたディレクトリの下にdu
一度だけ報告されます。
いくつかの方法でハードリンクを見つけることができます。
find myfolder -links +1 -type f
myfolder
+1
そのリンクの場所に関係なく(「複数」を意味します)、下に少なくとも2番目のハードリンクを持つすべてのファイルを一覧表示します。find . -samefile myfolder/foo
myfolder/foo
(GNU findを使用)現在のディレクトリのすべてのハードリンクを一覧表示します。myfolder
現在ディレクトリにあるので、自分も含まれますmyfolder/foo
。find -type f -links +1 -printf '%i %p\n' | sort -k1n
(GNU findを使用)現在のディレクトリにinode番号でグループ化されたハードリンクファイルのリストを作成します。 2つのファイルが同じファイルシステムにあり、同じinode番号を持つ場合、2つのファイルは同じです。