특정 tar를 자체 DIR로 추출할 수 없습니다.

특정 tar를 자체 DIR로 추출할 수 없습니다.

확장자가 *tar.gz인 파일을 자체 디렉토리에 추출하려고 합니다.

tar -zxf /tmp/ranger/ranger-2.1.0-solr_audit_conf.tar.gz

위와 같이 하면 모든 파일이 현재 작업 디렉터리로 추출되지만 해당 파일을 모두 자체 디렉터리로 이동하고 싶습니다.

다음 명령은 특정 디렉터리로 추출합니다.

tar -zxf /tmp/ranger/ranger-2.1.0-solr_audit_conf.tar.gz -C /tmp/ranger/ranger-2.1.0-solr_audit_conf

참고: -C 없이 다른 파일을 처리하려고 하면 자체 디렉터리로 추출할 수 있는데, 이는 흥미롭습니다.

답변1

tar -x파일 내용을 *.tar.*현재 작업 디렉터리...기간으로 추출합니다. 이것이 의미하는 바는 다음과 같습니다. 그리고 원하는 동작을 얻기 위해 이를 수정하는 방법은 다음과 같습니다.

일반적으로 디렉터리는 압축된 패키지입니다. 누군가가 썼다는 의미:

tar -czf tarball.tar.gz somedirectory

이 경우 이렇게 하면 tar -x콘텐츠가 somedirectory. 누군가 다음을 사용하여 아카이브를 압축했을 가능성이 높습니다.

tar -czf tarball.tar.gz file1 file2 file3

이 경우 를 실행하면 tar -x현재 디렉토리에 file1, 및 가 표시됩니다 file2.file3


이 경우 추출된 파일을 별도의 디렉터리에 저장하려면 다음을 수행해야 합니다.

mkdir tarball && cd tarball && tar -xzf ../tarball.tar.gz

tar -x를 사용해야 하는지 또는 mkdir _ & cd _ & tar -x ../_사용해야 하는지 알아보려면 tar --list -f tarball.tar.gz타르볼을 추출하기 전에 타르볼의 내용을 나열하므로 pwd있는 그대로 추출할지, 아니면 새 디렉토리를 만들어 거기에서 추출할지 결정할 수 있습니다.

관련 정보