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