답변:
찾고있는 것은 -C
옵션입니다.
$ man tar
<snip>
-C, --directory DIR
change to directory DIR
귀하의 예에 따른 사용법 :
$ tar xvzf archivename.tar.gz -C /tmp/testdir/ sampledir/
또한 최신 버전의 플래그는 gzipped 파일의 압축을 풀 tar
때 z
플래그가 필요하지 않습니다 . 그들은 그것이 .gz
자동으로 올바른 일을하고 있음 을 알게 될 것입니다.
당신은 모든 것을 untarring 미친 게임을 할 필요가 없습니다. Tar은 다음과 같은 (사소한) 예와 같이 아카이브에서 파일의 서브 세트 추출 만 완전히 지원합니다.
/tmp $ mkdir tarsrc
/tmp $ cd tarsrc
/tmp/tarsrc $ mkdir a b
/tmp/tarsrc $ touch a/aaa b/bbb
/tmp/tarsrc $ tar cf ../tartest.tar .
/tmp/tarsrc $ cd ..
/tmp $ mkdir tardest
/tmp $ cd tardest
/tmp/tardest $ tar xf ../tartest.tar ./a
/tmp/tardest $ ls -R
.:
a/
./a:
aaa
요령은 경로 스펙이 tarfile의 내용과 정확히 일치해야한다는 것입니다. 따라서을 시작할 때 tar tf
경로가로 시작하면 경로를 입력해야하며 경로가 없으면 경로 ./
를 떠나야합니다. 또한 서브-서브-서브-서브-서브-서브-서브-경로를 추출하려는 경우, 파일 시스템에서 N 레벨까지 끝납니다.
-C
tar 옵션을 원합니다 .