it-swarm-ko.tech

압축 파일에서 특정 디렉토리로 특정 파일 만 추출

경로를 알고있는 Zip 파일에서 단일 파일을 추출해야합니다. 다음과 같은 명령이 있습니까?

unzip -d . myarchive.Zip path/to/zipped/file.txt

불행하게도, 위 명령은 ./path/to/zipped/file.txt에서 파일의 전체 경로를 추출하고 다시 만듭니다. 파일을 지정된 디렉토리로 간단하게 꺼내는 방법이 있습니까?

168
Naftuli Kay

-p 옵션을 사용하여 텍스트 만 표준 출력으로 추출 할 수 있습니다.

unzip -p myarchive.Zip path/to/zipped/file.txt >file.txt

메타 데이터 (날짜, 권한 등)는 추출하지 않고 파일 내용 만 추출합니다. 그것은 나중에 파일을 이동할 필요가 없다는 편의를 위해 지불하는 가격입니다.

또는 아카이브를 디렉토리로 마운트하고 파일을 복사하십시오. AVFS :

mountavfs
cp -p ~/.avfs"$PWD/myarchive.Zip#"/path/to/zipped/file.txt .

또는 Fuse-Zip :

mkdir myarchive.d
Fuse-Zip myarchive.Zip myarchive.d
cp -p myarchive.d/path/to/zipped/file.txt .
fusermount -u myarchive.d; rmdir myarchive.d
unzip -j "myarchive.Zip" "in/archive/file.txt" -d "/path/to/unzip/to"

파일 이름뿐만 아니라 압축 파일의 전체 경로를 입력하십시오. Zip 파일 내에서 본 구조를 유지하십시오.

단일 파일 file.txtmyarchive.Zip에서 /path/to/unzip/to/file.txt.

169
sMyles

더 간단한 버전 :

unzip ARCHIVE_NAME PATH_OF_FILE_INSIDE_ARCHIVE

PATH_OF_FILE_INSIDE_ARCHIVE 현재 디렉토리에 있지만 지정된 파일 만 추출합니다.

Zip 보관 파일의 모든 파일을 나열하려면

unzip -l ARCHIVE_NAME
25
Taukir

On macOS, 기본적으로 Info-Zip

먼저 파일을 나열하여 원하는 것을 찾으십시오.

unzip -l my.Zip

그런 다음 아카이브에서 추출 할 파일 목록을 제공하십시오.

unzip my.Zip annoying/path/to/file

표준 출력을 위해 -p와 결합

unzip -p my.Zip annoying/path/to/file >./file
4

간단한 사용 :

unzip zipfile.Zip path/inside/Zip/file.txt

그리고 파일을 팽창시킵니다.

$ unzip -l ./../html.Zip | grep wp-config

     3328  07-22-2019 15:10   html/wp-config.php

     2898  01-07-2019 23:30   html/wp-config-sample.php

$ unzip ./../html.Zip html/wp-config.php

     Archive:  ./../html.Zip
     inflating: html/wp-config.php

$ ls -lrth

     total 4.0K
     drwxr-sr-x 2 Apache apache 4.0K Jul 26 14:41 html

$ ls -lrth html/*

     total 4.0K
     -rw-rw-rw- 1 Apache apache 3.3K Jul 22 15:10 wp-config.php

상대 디렉토리로 추출

unzip -j -d relativedir archive.Zip path/in/archive/file.ext

현재 디렉토리로 추출

unzip -j -d . archive.Zip path/in/archive/file.ext

절대 디렉토리로 추출

unzip -j -d /absolutedir archive.Zip path/in/archive/file.ext
0
Gapmeister66