파일의 압축을 풉니 다

파일의 압축을 풉니 다
~/Downloads/t1$ tar tf test.t 
home/a/Downloads/t2/
home/a/Downloads/t2/z.txt 
home/a/Downloads/t2/y.txt
~/Downloads/t1$ tar xf test.t 
~/Downloads/t1$ ls ~/Downloads/t2
ls: cannot access ’/home/a/Downloads/t2’: No such file or directory 

왜 이런 일이 발생합니까? 경로명을 입력하지 않아서 그런걸까요?

답변1

ls home/a/Downloads/t2/tar 아카이브를 추출한 디렉토리에서 시도해 보십시오.

tar t목록의 경로를 참고하세요 .아니요앞에 슬래시가 있으므로 아카이브를 추출할 때 파일 시스템 루트가 아닌 현재 작업 디렉토리를 기준으로 합니다. 일반적으로 아카이브에서 가능한 곳으로 파일을 추출하는 것은 매우 위험할 수 있으므로 이것이 원하는 것입니다.

물론, 아카이브를 생성할 때 경로의 관련 부분 tar cf foo.tar t2만 저장하는 것보다는 아카이브를 사용하는 경우가 많습니다.tar cf foo.tar /home/a/t2

그러나 아카이브에는 이미 더 긴 경로가 있으므로 a) 루트 디렉터리로 이동하여 압축을 풀 수 있습니다.

~$ cd /
/$ tar xf ~/Downloads/t1/test.t 

tar또는 적어도 GNU tar에서와 같이 원하지 않는 부분을 제거 하는 옵션을 사용하십시오 .

--strip-components=NUMBER
추출할 때 파일 이름에서 NUMBER개의 선행 구성요소를 제거하세요.

그래서 tar xf test.t --strip-components=3그것은 이루어져야합니다.

관련 정보