동일한 폴더의 복사본이 3개 있는데 크기가 다릅니다. 왜?
데스크탑 하드 드라이브의 암호화된 lvm에서 외부 드라이브의 암호화된 luks 파티션으로 복사한 "Documents" 폴더가 있습니다. 그런 다음 이 폴더를 외부 드라이브에서 내 노트북 하드 드라이브의 암호화된 lvm으로 복사했습니다.
따라서 동일한 폴더의 복사본이 세 개 있습니다.
- 데스크탑
- 외장 드라이브
- 랩탑
diff
나는 데스크탑과 외장 드라이브를 사용했습니다 -> 차이가 없습니다.
diff
나는 랩톱과 외장 드라이브를 사용했습니다 --> 차이가 없습니다.
하지만 세 가지 경우에 대해 폴더 크기가 다릅니다.
나는 사용했다
du -bs --apparent-size Documents
크기를 측정하기 위해. 결과는 다음과 같습니다.
- 데스크톱: 1735750760
- 외장 드라이브: 1735742568
- 노트북: 1735746664
그래서 우리는 크기 사이에 약간의 차이가 있음을 알 수 있습니다. 작은 차이가 있지만 여전히 존재합니다. 왜 그럴까 궁금했어요. 설명이 있나요?
답변1
다양한 폴더 간의 차이점은 다음과 같습니다.
Desktop: 1735750760
- 8192
External drive: 1735742568
+ 4096
Laptop: 1735746664
내 경험에 따르면 이러한 4K 블록의 차이는 일반적으로 디렉터리 크기의 변경으로 인해 발생합니다. 디렉터리 자체의 크기(ext 파일 시스템에서는 일반적으로 4K의 배수)를 비교하면 차이를 발견할 수 있습니다.
(예: 복사 작업 중에 디렉토리가 재구성되어 삭제된 항목이 제거될 때 디렉토리가 더 작아지는 경우가 있습니다.)
크기가 다른 디렉터리를 찾으려면 디렉터리를 서로 비교해야 합니다. 다음 스크립트가 도움이 될 수 있습니다.
#!/bin/bash
DIR1="${1%/}/"
DIR2="${2%/}/"
diff \
<(find $DIR1 -type d -printf "%k %p\n" | sed -e "s|$DIR1||" | sort -k2) \
<(find $DIR2 -type d -printf "%k %p\n" | sed -e "s|$DIR2||" | sort -k2)
코드를 새 파일(예: dircomp.sh)에 복사하고 실행 가능하게 만듭니다 chmod +x dircomp.sh
. 그런 다음 ./dircomp.sh /home/lemenhir/ /media/lemenhir/ExternalDrive/
.
이제 출력에는 크기가 다른 디렉터리만 나열되어야 하며 다음과 같습니다.
< 4 Documents/Appartement/Bail
> 8 Documents/Appartement/Bail
로 시작하는 줄은 <
첫 번째 매개변수(예: /home/lemenhir/)로 지정된 디렉터리에 있는 디렉터리를 나열하고, 로 시작하는 줄은 >
두 번째 매개변수로 지정된 디렉터리(예: /media/lemenhir/ExternalDrive/)에 있는 디렉터리를 나열합니다. .
한 줄이 나타나면 해당 디렉터리가 반대 디렉터리에 존재하지 않는 것입니다.
도움이 되었기를 바랍니다.