다음과 같은 보관 디렉터리가 있습니다.
itunes20140618.tbz
다음과 같은 단일 파일을 추출하고 싶습니다.
itunes20140618/video
어떻게 해야 할까요?
지금까지 나는하고있다
$ bzip2 -d /tmp/itunes20140618.tbz
그러나 그것은 모든 것의 tar 디렉토리를 생성하는 것 같습니다. 단일 비디오 파일만 추출하려면 어떻게 해야 합니까?
현재 tar를 통해 하나의 파일을 추출하면 약 1분이 걸리고 tar 아카이브 읽기가 완료되는 동안 20분 동안 '중단'됩니다. 이것을 개선하는 방법에 대한 아이디어가 있습니까?
답변1
tar -xvjf itunes20140618.tbz itunes20140618/video
이 경우에는 그렇게 해야 합니다. 하지만 추가 도움이 필요한 경우 다음을 수행하십시오.
info tar
특정 아카이브 멤버를 추출하려면 에서 인쇄한 대로 정확한 멤버 이름을 인수로 제공하십시오
--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 형식에는 압축이 포함되지 않습니다. A .gz
또는 파일 .bz2
은 .xz
단일 압축 파일입니다. A .tar.gz
, .tar.bz2
등은 압축된 아카이브입니다. 는 가 때때로 대신에 사용되는 것과 마찬가지로 가끔 을 .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
을 사용하여 명시적으로 알려야 하는 경우에도 최소한 내부적으로 호출할 수 있습니다 -j
.
tar -xjf itunes20140618.tbz itunes20140618/video