다음 명령을 사용하여 압축 tar 파일을 만들었습니다.
find /app/jboss -not -name "*.err" -not -name "*.log" | cpio -o | gzip >/app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
여기에 zip 파일이 있어요
[user1@myhost test]$ ls -ltr /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
-rwxrwxr-x 1 user1 mygrp 363997224 Aug 18 16:08 /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
/app/jboss
아래 디렉토리를 /app/patchbkp/test
추출 하여 /app/patchbkp/test/app/jboss/.......
다음 명령을 시도합니다.
cd /app/patchbkp/test/
zcat /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz | cpio -i
하지만 이것은 파일을 생성하지 않습니다/app/patchbkp/test
시도할 때 권한 거부 오류가 발생합니다.gunzip /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
/app/jboss
디렉토리에서 tar 아카이브의 압축을 푸는 방법을 안내해 주실 수 있나요 ?/app/patchbkp/test
답변1
첫 번째 명령은 cpio
절대 파일 이름을 사용하여 압축 형식 아카이브를 만듭니다. 즉, 파일을 추출하면 이러한 절대 위치에 배치됩니다.
-format 아카이브는 -format 아카이브 가 아닌 -format 아카이브 로 cpio -o
작성됩니다 . -format 파일을 사용해야 합니다 .cpio
tar
cpio -o -H tar
tar
extract 명령은 작동하지만 파일 시스템의 절대 위치에만 파일을 씁니다. -t
먼저 플래그가 있는 파일을 나열하면 어떤 일이 일어나는지 확인할 수 있습니다.
zcat /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz | cpio -it
나는 당신의 명령의 이러한 변형을 추천합니다
( cd / && find app/jboss -not -name "*.err" -not -name "*.log" | cpio -o -H tar ) | gzip >/app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
또는 GNU를 직접 사용할 수도 있습니다( tar
사용 가능한 경우).
tar -C / -f /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz -cv --exclude '*.log' --exclude '*.err' app/jboss