매우 큰 디렉터리의 보관을 취소하려고 합니다. 전체 내용을 압축 해제하는 방법은 다음과 같습니다.
$ sudo tar -xjf itunes20140618.tbz --verbose
x itunes20140618/
x itunes20140618/genre_artist
x itunes20140618/imix_type
...etc...
그러나 단일 파일만 아카이브 취소하려고 하면 올바르게 수행되지만 명령이 무기한 중단됩니다. 또한 --verbose 문을 사용할 때 어떤 출력도 인쇄하지 않습니다. 예는 다음과 같습니다.
$ sudo tar -xjf itunes20140618.tbz itunes20140618/imix --verbose
[ nothing prints...it just hangs. But it does un-tar that single file ]
답변1
옵션이 아닌 인수 뒤에 옵션을 지정하지 마세요. 특히 tar
옵션, 작업 및 인수를 구문 분석하는 여러 가지 고대 및 최신 방법을 지원하는 여러 구현이 포함된 비표준 명령인 경우에는 더욱 그렇습니다.
안에:
tar -xjf itunes20140618.tbz itunes20140618/imix --verbose
itunes20140618.tbz
옵션 에 대한 인수 -f
, itunes20140618/imix
아카이브에서 추출할 멤버의 이름으로 사용되는 추가 비옵션 인수입니다. --verbose
추가 인수(추출할 다른 멤버의 이름) 또는 옵션으로 처리되는지 여부는 구현 및 버전 tar
, 컴파일 방법 또는 런타임 환경에 따라 달라집니다.
귀하의 경우, 귀하는 이를 글로벌 옵션으로 tar
받아들이지 않는 사람들(대다수) 중 하나 일 수 있습니다.--verbose
여기서는 다음을 사용하세요.
tar -xjf itunes20140618.tbz --verbose itunes20140618/imix
또는 휴대성이 더 좋습니다.
bunzip2 < itunes20140618.tbz | tar xvf - itunes20140618/imix
또는 tar
표준으로 교체하십시오(휴대성은 떨어지지만) pax
.
bunzip2 < itunes20140618.tbz | pax -vr itunes20140618/imix
답변2
귀하는 bzip2
다음이 아닌 것을 사용하고 있습니다.파일 아카이버그래서 tar
본질적으로 a 역할을 file archiver
하고 bzip2
압축합니다.
예를 들어, tar를 사용하여 파일 모음을 아카이브한 다음 결과 아카이브 파일을 gzip으로 압축하면 확장자가 .tar.gz인 파일이 생성됩니다.
그러나 이 접근 방식에는 Wiki 기사에 명시된 대로 단점이 있습니다.
하나의 파일을 추출하거나 수정하는 것은 어렵습니다. 하나의 파일을 추출하려면 전체 아카이브의 압축을 풀어야 하므로 시간과 공간이 많이 소모될 수 있습니다.
그래서 내 제안은 단일 파일을 자주 추출하는 경우에만 .tar
또는 .zip
또는 을 사용하는 것입니다 ..rar