파일만 추출하고 추출 과정에서 폴더를 생성하지 않는 tar 파일을 생성합니다.

파일만 추출하고 추출 과정에서 폴더를 생성하지 않는 tar 파일을 생성합니다.

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후 "이 디렉터리"를 포함하도록 지시합니다.cdfoldername-C foldername

궁극적으로 tar 파일의 이름은 ./로 시작 foldername/하므로 현재 작업 디렉터리에 압축이 풀립니다.

반면에 와 유사한 이름을 가진 tar 파일이 있고 foldername/X첫 번째 디렉토리 구성 요소 없이 해당 파일의 압축을 풀고 싶다면 이 매개변수가 --strip-components=1좋습니다. 따라서 압축 해제 명령은 다음과 같을 수 있습니다.

tar xzf filename.tar.gz --strip-components=1

이 매개변수에 따라 모든 경로 이름의 첫 번째 디렉토리 부분은 압축 해제 중에 "제거"됩니다. 모든 세부정보를 확인하세요 man tar.

관련 정보