다음과 같은 아카이브 디렉토리가 있습니다.
itunes20140618.tbz
여기에서 이름이 다음과 같은 단일 파일을 추출하고 싶습니다.
itunes20140618/video
어떻게 해야 합니까?
지금까지 내가 하고 있는 일
$ bzip2 -d /tmp/itunes20140618.tbz
하지만 모든 내용이 포함된 tar 디렉토리를 생성하는 것 같습니다. 단일 비디오 파일을 어떻게 추출합니까?
현재 tar를 통해 파일을 추출하는 경우 약 1분이 소요되고 tar 아카이브 읽기가 완료되는 동안 추가로 20분 동안 "중단"됩니다. 이것을 개선하는 방법에 대한 아이디어가 있습니까?
답변1
tar -xvjf itunes20140618.tbz itunes20140618/video
이 경우에는 이렇게 하면 됩니다. 하지만 추가 도움이 필요한 경우:
info tar
특정 아카이브 멤버를 추출하려면 prints 와 같이 정확한 멤버 이름을 인수로 제공하십시오
--list (-t)
. 이전에 아카이브에 넣은 파일 중 하나collection.tar
(예:blues
)를 실수로 삭제한 경우 아카이브의 구조를 변경하지 않고 아카이브에서 해당 파일을 추출할 수 있습니다. 해당 내용은blues
삭제한 원본 파일과 동일 합니다 .먼저 해당 디렉토리에 있는지 확인
practice
하고 해당 디렉토리에 있는 파일을 나열하십시오. 이제 파일을 삭제blues
하고 디렉토리의 파일을 다시 나열하십시오.
blues
이제 다음과 같이 아카이브 파일 "collection.tar"에서 멤버를 추출할 수 있습니다.
$ tar --extract --file=collection.tar blues
디렉터리에 있는 파일을 다시 나열하면 파일이
blues
원래 권한, 데이터 수정 시간, 소유자로 복원된 것을 확인할 수 있습니다. (이러한 매개변수는 원래 파일을 아카이브에 배치했을 때와 동일합니다. 그러나 파일 시스템에서 파일을 제거하기 전에 수행한 변경 사항은 아카이브 구성원에 적용되지 않습니다.) 압축파일은collection.tar
압축을 풀기 전과 동일합니다blues
. 를 실행하여tar
이를 확인할 수 있습니다--list (-t)
.
답변2
.zip
.rar
, 또는 같은 아카이브는 .7z
함께 묶이고 압축된 많은 파일로 만들어집니다. .tar
아카이브는 함께 묶인 많은 파일로 구성되지만 tar 형식에는 압축이 포함되어 있지 않습니다. .gz
, .bz2
또는 .xz
파일이 단일 압축 파일입니다. .tar.gz
, .tar.bz2
등은 압축된 아카이브입니다. How 가 대신 사용되는 것처럼 .tbz
가끔 대신 사용되는 접미사입니다 ..tar.bz2
.tgz
.tar.gz
bzip2 -d /tmp/itunes20140618.tbz
파일의 압축을 풉니다. 압축되지 않은 tar 아카이브를 얻게 됩니다. bzip2
tar를 생성하지 않습니다. 공급된 내용의 압축을 풀고, 주어진 것은 압축된 tar이므로 출력은 압축되지 않은 tar입니다. 압축을 풀어 생성된 파일을 사용하시면 됩니다 tar -xf /tmp/itunes20140618.tar
. 하나의 파일만 추출하려면 tar -xf /tmp/itunes20140618.tar itunes20140618/video
, 즉
Linux, FreeBSD, MINIX3 및 OSX의 최신 버전 tar는 압축된 아카이브를 자동으로 감지하므로 아카이브에 사용되는 압축에 대해 걱정하지 않고 먼저 tar를 호출할 수 있습니다.
tar xf itunes20140618.tbz itunes20140618/video
OpenBSD, Solaris, BusyBox가 있는 Linux와 같은 오늘날의 많은 시스템뿐만 아니라 이전 버전의 tar는 bzip2
options 를 사용하여 명시적으로 알려야 하는 경우에도 최소한 뒤에서 호출 할 수 있습니다 -j
.
tar -xjf itunes20140618.tbz itunes20140618/video