tbz에서 단일 파일을 추출하는 방법

tbz에서 단일 파일을 추출하는 방법

다음과 같은 아카이브 디렉토리가 있습니다.

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 아카이브를 얻게 됩니다. bzip2tar를 생성하지 않습니다. 공급된 내용의 압축을 풀고, 주어진 것은 압축된 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는 bzip2options 를 사용하여 명시적으로 알려야 하는 경우에도 최소한 뒤에서 호출 할 수 있습니다 -j.

tar -xjf itunes20140618.tbz itunes20140618/video

관련 정보