파일 속성과 상위 디렉터리를 유지하면서 /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 --xattrs
GNU 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.