cp 명령이 파일 구조를 변경합니까?

cp 명령이 파일 구조를 변경합니까?

저는 Linux 및 Debian 배포판을 처음 접했으므로 저를 비난하지 마십시오. 내 생각은 해당 cp명령을 사용하여 한 드라이브에서 다른 드라이브로 파일을 복사하면 파일 구조가 어떤 식으로든 변경되지 않는다는 것입니다. 정말? 보존 옵션은 권한, 타임스탬프 등을 보존하지만 cp프로세스가 내부 파일 구조를 변경하거나 어떤 방식으로든 파일을 손상시킬 수 있다는 것을 이해합니다. 미리 감사드립니다.

답변1

예, cp파일 시스템의 구조를 변경하는 것이 가능하지만 일반적으로 프로그램은 이를 인식하지 못하므로 파일이 손상되지 않습니다. 이는 희소 파일에서 발생합니다.구멍너무 많은 공간을 차지하지 않기 위해 파일 시스템은 내용을 저장하지 않습니다.구멍부분.

cp매개변수가 있습니다 --sparse:

기본적으로 희소 소스 파일은 대략적인 휴리스틱을 통해 감지되며 해당 대상 파일도 희소화됩니다. 이것은 선택된 동작입니다 --sparse=auto. --sparse=always소스 파일에 0바이트의 긴 시퀀스가 ​​포함될 때마다 스파스 DEST 파일이 생성되도록 지정합니다 . --sparse=never스파스 파일 생성을 비활성화 하는 데 사용됩니다 .

참고: 대상 하드 드라이브가 손상되면 cp손상된 파일이 생성될 수 있지만 이는 의도적인 것이 아닙니다.

답변2

습관. 드라이브 중 하나에 대한 연결에 문제가 있는 경우 복사 프로세스 중에 손상이 발생할 수 있지만 명령 cp자체로는 손상이 발생하지 않습니다. 권한과 타임스탬프를 언급하셨는데, 이는 파일 자체에 저장되지 않고 메타데이터에 저장됩니다. cp명령할 수 있는메타데이터를 (그리고 자주) 변경합니다.

답변3

cp절대의도적으로파일이 손상되었지만 물론 문제가 발생할 수도 있습니다. 일반적인 용도로는 cp파일 복사에 문제가 없습니다.

복사된 파일의 무결성을 확인하려면 복사 후 파일 해시를 확인하거나 이 기능이 내장된 도구(예 rsync --checksum: .

답변4

"파일 구조"는 정확한 개념이 아닙니다. 그러나 cp파일 구조를 "보존"하지도 "변경"하지도 않는 표현의 합리적인 의미에 따르면복사그것. 사본은 cp원본과 동일한 알려진 방식으로 저장 됩니다 . 최소한 이는 동일한 파일 콘텐츠와 일부 동일한 메타데이터(재귀 복사본의 권한, 파일 이름 및 유형, 타임스탬프와 같은 대부분의 다른 메타데이터 -p등)를 의미합니다. 대부분의 구현에서는 cp압축 파일(예: 스파스 파일)의 내부 구조를 재현하지 않습니다. 그리고 cp파일 레이아웃(파일을 구성하는 블록이 디스크에서 구성되는 방식)은 유지되지 않습니다. 이는 동일한 파일 시스템에서는 불가능하며 다른 파일 시스템에서는 의미가 없습니다. 파일 내용이 보존되므로 데이터가 "손상"되지 않습니다. 동일한 데이터를 얻지만 다르게 저장될 수 있습니다.

관련 정보