하나 있다여기에도 비슷한 질문이 있습니다.
올바르게 이해했다면 첫 번째 대답은 폴더의 내용을 추출할 수 없고 폴더 내의 특정 파일만 추출할 수 있다는 것입니다.
두 번째 답변에서는 이 --directory
옵션을 사용합니다. 이것이 바로 내가 원하는 것처럼 보이지만 아카이브 내의 디렉터리에서 파일을 추출하는 대신 options 에 표시된 디렉터리에 파일을 출력합니다 --directory
.
폴더를 tar하면 루트 디렉터리부터 시작하는 전체 경로가 포함됩니다. 그래서 그것은 home/ole/folder/thestuff
. folder/thestuff
현재 있는 폴더에 압축을 풀고 싶지만 home/ole
.
아이디어?
답변1
올바르게 이해했다면 첫 번째 대답은 폴더의 내용을 추출할 수 없고 폴더 내의 특정 파일만 추출할 수 있다는 것입니다.
아니요, 상대 파일 이름과 절대 파일 이름에 대해 이야기하고 있습니다. /some/path
사이의 차이some/path
tarfile의 내용을 봅니다 tar tf file
. /path/to/folder
로 나열되면 폴더를 지정할 수 없습니다 path/to/folder
.
추출할 (올바른) 폴더를 제공하는 데에는 문제가 없습니다.
- 추출할 파일 나열
tar tf file.tar path/to/folder
- 파일의 압축을 푼다(현재 디렉터리에)
tar xf file.tar path/to/folder
예를 들어:
확인해야 할 사항:
$ tar tf ../test.tar
a/
a/3
a/2
a/1
b/
b/3
b/2
b/1
a 폴더의 압축을 푼다
$ tar xf ../test.tar a
그것이 무엇을 추출하는지보세요
$ find .
.
./a
./a/3
./a/2
./a/1
답변2
내 경우에는 다음과 같이 할 수 있습니다.
tar -xvzf archive.tar.gz --strip-comComponents=2
이렇게 하면 home/ole
경로에서 해당 경로가 제거되고 아카이브의 해당 경로 아래에 있는 모든 항목이 현재 디렉터리로 추출됩니다.