tar.gz 파일로 압축하려는 파일이 포함된 폴더가 있습니다. 다음 명령을 사용하고 있습니다.
tar -czvf filename.tar.gz foldername
물론, 이것은 파일을 생성했습니다 filename.tar.gz
. 그러나 tar 파일의 압축을 풀면 기본적으로 폴더가 생성되고 filename
모든 파일이 해당 폴더에 저장됩니다.
tar 파일 자체를 생성할 때 이 폴더 생성을 피할 수 있나요? 다음 명령을 시도했지만 작동하지 않습니다.
tar -czv filename.tar.gz foldername
우분투 14.04를 사용하고 있습니다.
내 현재 디렉토리 구조는 다음과 같습니다.
~/Test/foldername
디렉토리 폴더 이름에는 압축하려는 모든 파일이 포함되어 있습니다. 내 코드는 다음과 같습니다.
cd Test
tar czvf filename.tar foldername/*
답변1
-C
또 다른 방법은 다음과 같은 명령줄 인수를 사용하는 것입니다 .
tar czvf filename.tar.gz -C foldername .
마지막 항목에 주목하세요 . 이는 .
-ed 매개변수를 통해 입력한 tar
후 "이 디렉터리"를 포함하도록 지시합니다.cd
foldername
-C foldername
궁극적으로 tar 파일의 이름은 ./
로 시작 foldername/
하므로 현재 작업 디렉터리에 압축이 풀립니다.
반면에 와 유사한 이름을 가진 tar 파일이 있고 foldername/X
첫 번째 디렉토리 구성 요소 없이 해당 파일의 압축을 풀고 싶다면 이 매개변수가 --strip-components=1
좋습니다. 따라서 압축 해제 명령은 다음과 같을 수 있습니다.
tar xzf filename.tar.gz --strip-components=1
이 매개변수에 따라 모든 경로 이름의 첫 번째 디렉토리 부분은 압축 해제 중에 "제거"됩니다. 모든 세부정보를 확인하세요 man tar
.