폴더의 tar+gz 파일을 모든 하위 폴더로 그대로 [중복]

폴더의 tar+gz 파일을 모든 하위 폴더로 그대로 [중복]

tar.gz 아래의 모든 jar 파일을 원합니다.

2.6.4.0-91/spark2/jars/super-csv-2.2.0.jar
2.6.4.0-91/spark2/jars/univocity-parsers-2.2.1.jar
2.6.4.0-91/spark2/jars/validation-api-1.1.0.Final.jar
2.6.4.0-91/spark2/jars/xbean-asm5-shaded-4.4.jar
2.6.4.0-91/spark2/jars/xercesImpl-2.9.1.jar
2.6.4.0-91/spark2/jars/xmlenc-0.52.jar
2.6.4.0-91/spark2/jars/xz-1.0.jar
2.6.4.0-91/spark2/jars/zookeeper-3.4.6.2.6.4.0-91.jar

그래서 나는 다음을했다

cd /var/tmp
tar -czvf archive.tar.gz /usr/hdp/2.6.4.0-91/spark2/jars

하지만 내가 할 때

tar xvf archive.tar.gz

usr 폴더를 얻습니다

usr 

그리고 예상되는 결과는 단지 jars(하위 폴더 없음)여야 합니다.

    super-csv-2.2.0.jar
    univocity-parsers-2.2.1.jar
    validation-api-1.1.0.Final.jar
    xbean-asm5-shaded-4.4.jar
    xercesImpl-2.9.1.jar
    jxmlenc-0.52.jar
    xz-1.0.jar
    zookeeper-3.4.6.2.6.4.0-91.jar

내 문법에 무슨 문제가 있나요?

 cd /var/tmp
 tar -czvf archive.tar.gz /usr/hdp/2.6.4.0-91/spark2/jars

답변1

파일 아카이브를 시작하기 전에 -Ctar가 디렉토리에 들어가도록 하는 옵션을 사용하십시오.chdir

tar -czf archive.tar.gz -C /usr/hdp/2.6.4.0-91/spark2/jars .

마지막 매개변수에 점을 잊지 마세요.

매개변수 뒤의 첫 번째 매개변수 f는 아카이브를 출력할 파일 이름이고, 다음 옵션은 -C디렉터리 이름을 인수로 사용하며(여기서 tar chdir는) 점은 아카이브를 시작할 디렉터리입니다.

답변2

tar명령줄에 전달된 전체 경로를 저장합니다.

디렉토리만 원할 경우 2.6.4.0-91다음을 cd입력하십시오 .앞으로전화하세요 tar.

이 경우에는 다음을 수행해야 한다는 점을 기억하십시오.지정하다이 옵션으로 아카이브를 -C끝내려는 위치입니다.

예를 들어 귀하가 다음 지역에 있다고 가정해 보겠습니다 /home/user/.

cd /usr/hdp/
tar -czvf -C /home/user/archive.tar.gz 2.6.4.0-91/spark2/jars/

관련 정보