이것은 작동하지 않습니다:
tar xf /tmp/foo.tar.gz foo/bar
tar: foo/bar: Not found in archive
파일을 제자리에 추출하고 이동하는 것 외에 무엇을 해야 할지 명확하지 않습니다.
답변1
에서 man tar
:
-C directory
In c and r mode, this changes the directory before adding the
following files. In x mode, change directories after opening the
archive but before extracting entries from the archive.
즉, tar xC /foo/bar -f /tmp/foo.tar.gz
작업을 완료해야 합니다. (FreeBSD에서는그러나 GNU tar는 이 점에 있어서 기본적으로 동일합니다. 매뉴얼의 "작업 디렉토리 변경"을 참조하십시오.)
답변2
다른 곳에서 tar 아카이브를 추출하려는 경우CD대상 디렉터리로 이동하여 거기에서 압축을 풉니다.
mkdir -p foo/bar
cd foo/bar
tar xzvf /tmp/foo.tar.gz
foo/bar
사용하는 명령은 아카이브에서 파일을 검색하고 추출합니다.
답변3
행위:
(cd foo/bar ; tar xf /tmp/foo.tar.gz )
일을 할 것입니다.
기본적으로 이것이 수행하는 작업은 새 셸(괄호)을 생성하고 이 하위 셸에서 디렉터리를 로 변경한 foo/bar
다음 파일의 압축을 푸는 것입니다.
;
이를 변경하여 제대로 작동하는지 &&
확인할 수 있습니다.cd
답변4
추출할 디렉터리를 변경합니다.
cd /u02/restore
압축이 풀린 파일이 /u01/backup.tar 아래에 있는 경우
발췌 내용은 다음과 같습니다.
cd /u02/restore
tar -xvf /u01/backup.tar