파일 크기에 대한 하드 링크 계산?
Unix Timestamps라는 이름의 디렉토리를 생성 한 다음 하드 링크 시스템 (--link-dest in rsync)을 사용하여 증분 백업을 생성하는 백업 시스템이 있으므로 일반적으로 첫 번째 백업은 매우 크고 이후 백업은 그보다 훨씬 큽니다.
이것은 내 현재 백업의 출력입니다.
root@athos:/media/awesomeness_drive# du -sh lantea_home/*
31G lantea_home/1384197192
17M lantea_home/1384205953
17M lantea_home/1384205979
17M lantea_home/1384206056
17M lantea_home/1384206195
17M lantea_home/1384207349
3.1G lantea_home/1384207678
14M lantea_home/1384208111
14M lantea_home/1384208128
16M lantea_home/1384232401
15G lantea_home/1384275601
43M lantea_home/1384318801
모든 것이 정확 해 보이지만 예를 들어 마지막 디렉토리를 사용하십시오 lantea_home/1384318801
.
root@athos:/media/awesomeness_drive# du -sh lantea_home/1384318801/
28G lantea_home/1384318801/
이 동작이 지속적으로 발생합니다. 두 번째 du 명령에서 디렉토리가 28G로 간주되는 이유는 무엇입니까?
주-출력은 -P 및 -L 플래그와 동일하게 유지됩니다.
하드 링크는 동일한 파일에 대한 실제 참조입니다 (inode로 표시됨). "원본"파일과 그 파일을 가리키는 하드 링크 사이에는 차이가 없습니다. 두 파일 모두 같은 상태가, 모두 이 파일에 대한 참조입니다. 이들 중 하나를 제거하면 다른 하나는 그대로 유지됩니다. 마지막 하드 링크 만 제거하면 파일이 제거되고 디스크 공간이 확보됩니다.
따라서 du
한 디렉토리에서만 무엇을 보는지 물어 보면 동일한 내용을 가리키는 하드 링크가 다른 곳에 있는지 상관하지 않습니다. 단순히 모든 파일의 크기를 계산하고 합산합니다. 고려 된 디렉토리 내의 하드 링크 만 두 번 이상 계산되지 않습니다. du
(모든 프로그램이 반드시 그럴 필요는 없습니다)
따라서 실제로 디렉터리 A의 du
크기는 28G이고 디렉터리 B의 크기는 29G 일 수 있지만 함께 사용하면 여전히 30G 만 차지 du
하며 A와 B의 크기 를 요청 하면 해당 숫자를 얻을 수 있습니다.
그리고 "-l"스위치를 사용하면 모든 하위 디렉터리의 하드 링크도 계산되므로 증분 델타뿐만 아니라 전체 백업이 얼마나 큰지 알 수 있습니다.
참조 URL : https://stackoverflow.com/questions/19951883/du-counting-hardlinks-towards-filesize
'program tip' 카테고리의 다른 글
GIT에서 삭제 취소 (0) | 2021.01.05 |
---|---|
WCF, Rest 및 SOAP의 관계는 무엇입니까? (0) | 2021.01.05 |
RecyclerView가 onCreateViewHolder 또는 onBindView를 호출하지 않습니다. (0) | 2021.01.05 |
Ruby에서 기본 브라우저 열기 (0) | 2021.01.05 |
Oracle의 to_char () 함수가 공백을 추가하는 이유는 무엇입니까? (0) | 2021.01.05 |