일부 데이터를 이동하려고 하는데 먼저 데이터의 크기가 올바른지 확인하고 싶습니다. 그러나 다음을 사용하여 폴더를 확인하면 문제가 발생합니다.
du -sh myfolder/
780M myfolder/
하지만
du -sh *
..
71M myfolder
..
숨김 파일과 관련이 있는 줄 알았는데 이 특정 폴더에는 아무 것도 들어 있지 않습니다.
내가 뭐 놓친 거 없니?
답변1
myfolder
사전순으로 정렬하기 전에 하위 디렉토리에 또 다른 하드 링크가 있는 709MB 파일이 포함될 가능성이 높습니다 myfolder
. 이 du
명령은 각 고유 파일이 처음 표시될 때만 보고하므로 파일에 오버레이가 실행되는 트리 내에 여러 링크가 있는 경우 du
처음 탐색된 디렉터리 아래에 한 번만 보고됩니다.
여러 가지 방법으로 하드 링크를 찾을 수 있습니다.
find myfolder -links +1 -type f
myfolder
+1
해당 링크의 위치에 관계없이 ("다중"을 의미) 아래에 최소한 두 번째 하드 링크가 있는 모든 파일을 나열합니다 .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 번호별로 그룹화된 하드 링크 파일 목록을 생성합니다. 두 파일이 동일한 파일 시스템에 있고 동일한 inode 번호를 갖는 경우 두 파일은 동일합니다.