home
몇 GB의 데이터와 백업용 일반 구성 파일이 포함된 Linux 사용자 디렉터리를 복사하고 싶습니다 . 소스 디렉터리와 백업 디렉터리는 정확히 일치해야 합니다.동일한콘텐츠. 운영체제는 루분투(Lubuntu)입니다.
이 디렉터리에는 숨겨진 파일과 하위 디렉터리가 포함되어 있습니다. 몇번의 구글링 끝에 찾은
cp -r /source-directory /backup-directory
적절한 명령입니다.
소스 디렉터리 파일 시스템은 ext4이고 대상 디렉터리는 NTFS입니다. 복사한 후에 diff -qr /source-directory /backup-directory
는 출력이 제공되지 않습니다(그래서 차이가 없다고 가정합니다). 그러나 du
또는 du -b
또는 du --apparent-size
all은 항상 소스 디렉터리와 백업 디렉터리에 대해 다른 출력을 제공합니다.
왜? 명령어 오류인가요, 사용법 du
오류인가요?
답변1
파일과 하위 디렉터리가 추가되면 필요에 따라 추가 블록이 디렉터리에 할당됩니다. 이러한 파일과 하위 디렉터리를 이후에 삭제해도 현재 비어 있거나 재사용 가능한 할당이 처리되지 않습니다. 따라서 복사 작업의 대상 디렉터리가 원본 디렉터리보다 약간 작은 것이 일반적입니다.
diff
핫 퍼즈 확인을 원하는 경우 소스 및 대상 디렉터리로 재귀하여 모든 것이 복사되었는지 확인할 수 있습니다.
그런데 rsync
구조 복사에도 이상적입니다.
rsync -avz /source-directory/ /backup-directory
소스 디렉터리의 후행 슬래시는 소스 디렉터리 이름이 백업 디렉터리의 첫 번째 하위 디렉터리로 포함되지 않음을 나타냅니다.
이 -avz
옵션은 rsync
권한, 소유권, 기호 링크 등을 보존하기 위해 아카이브 모드에서 복사하고, 전송 중에 압축을 사용하고, 작업을 자세히 보고하도록 지시합니다.
답변2
파일에 공간을 할당할 때 파일 시스템마다 오버헤드가 다를 수 있습니다. 또한 디렉터리 항목이 저장되는 방식도 다를 수 있습니다. 당신이 말하지 않은 것이 유감입니다.무엇출력이 다릅니다.