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
이것은 -O
tar 옵션을 사용합니다
-O, --to-stdout
: 표준 출력으로 파일 추출
표준 출력을 이름이 지정된 파일로 리디렉션합니다 out
. 아카이브에 여러 파일이 있는 경우 out
아카이브의 모든 파일이 연결됩니다.
bzip2
압축하는 동안 파일 트리를 저장하지 않으므로 직접 사용해야 합니다 . 대신, 단순히 데이터를 파일에 저장합니다.