개별 파일을 원하는 이름으로 추출

개별 파일을 원하는 이름으로 추출

tar파일이 하나 있으면 tar파일에 원하는 이름을 지정할 수 있습니다.

$ tar -cvfj A B

단일 파일의 압축을 풀 때도 동일한 작업을 수행하고 싶습니다.

$ tar -xvjf A tmp

(즉, A로 추출됨 tmp).

다음 방법을 사용하여 이 작업을 수행하려고 합니다 mv.

$ tar -xvjf $1 | mv $1 tmp

그건 작동하지 않습니다. $1이름은 무엇이든 가능하지만 tar파일은 폴더가 아닌 항상 단일 파일입니다(보장됨).

답변1

tar개별 파일을 압축하는 방법으로 압축을 사용하는 것으로 보이므로 직접 사용하는 것을 bzip2고려할 수 있습니다 .bzip2

압축된 파일(생성 filename.bz2, 삭제 filename):

bzip2 filename

파일 압축 풀기(생성 filename, 삭제 filename.bz2):

bunzip2 filename.bz2

특정 파일 이름으로 압축(생성 newfilename.bz2, 보존 filename):

bzip2 -c filename >newfilename.bz2

특정 파일 이름으로 추출(생성 newfilename, 유지 filename.bz2):

bunzip2 -c filename.bz2 >newfilename

bzip2해당 시스템의 설명서도 참조하십시오( man bzip2).

답변2

해결책은 다음과 같습니다.

tar -xjOf my.tar > out

이것은 -Otar 옵션을 사용합니다

-O, --to-stdout: 표준 출력으로 파일 추출

표준 출력을 이름이 지정된 파일로 리디렉션합니다 out. 아카이브에 여러 파일이 있는 경우 out아카이브의 모든 파일이 연결됩니다.

bzip2압축하는 동안 파일 트리를 저장하지 않으므로 직접 사용해야 합니다 . 대신, 단순히 데이터를 파일에 저장합니다.

관련 정보