파일 속성을 유지하면서 파일 복사

파일 속성을 유지하면서 파일 복사

파일 속성과 상위 디렉터리를 유지하면서 /etc/bin을 폴더에 복사하고 싶다고 가정해 보겠습니다. [대상 폴더에는 bin 폴더만이 아니라 /etc/bin도 포함되어야 합니다. ]

이것이 가능합니까? tar를 사용하여 압축하고 압축을 푸는 것이 효율적인가요?

답변1

mkdir target/etc
cp -Rp /etc/bin target/etc/

또는 (GNU에만 해당)

mkdir target/etc
cp -a /etc/bin target/etc/

또는

mkdir target/etc
rsync -aAX /etc/bin target/etc/

또는 (클래식 UNIX)

find /etc/bin | cpio -pm target

또는 (클래식 유닉스, 다른 것)

( cd / && tar -tf - etc/bin ) | (cd target && tar -xf - )

또는 (소수의 사람들이 들어본 것 같은 POSIX 대안)

mkdir target/etc
pax -rw -pe etc/bin target/etc/

이 모든 것은 기존 Unix 메타데이터(권한, 타임스탬프1, 소유권(루트로 실행하는 경우)2)를 보존합니다. 시스템에 따라 ACL 및 확장 속성과 같은 추가 메타데이터를 보존할 수도 있고 보존하지 않을 수도 있습니다(일부는 --acls --xattrsGNU tar 사용과 같은 추가 옵션이 필요할 수 있음).

1 복사할 수 없는 ctime 및 일부 디렉토리 atime은 제외됩니다 . ² 루트만 소유권을 보유할 수 있습니다.

답변2

인간 타르:

   -P, --absolute-names
          Don't strip leading slashes from file names  when  creating  ar‐
          chives.

   -p, --preserve-permissions, --same-permissions
          extract information about file permissions  (default  for  supe‐
          ruser)

   --xattrs
          Enable extended attributes support.

관련 정보