tar czf somename.tar some_*_files가 잘못되었나요?

tar czf somename.tar some_*_files가 잘못되었나요?

tar czf somname.tar some_*_files물론 tar czf somname.tar.gz some_*_files, 이것은 잘못된 것입니까 tar xf somename.tar? 즉, .gz확장자가 추가되지 않았습니다.

이 질문은 순전히 .gz파일 이름에 확장자를 추가 하지 않는 것과 somename.tar의도하지 않은 부작용이 있는지 여부에 관한 것입니다. 이 질문은 의 사용법에 관한 것이 아닙니다 -z.

답변1

원하는 대로 타르볼 이름을 지정할 수 있습니다. 예를 들어,

tar czvf surprise.c /etc/hosts 2>/dev/null

file surprise.c
surprise.c: gzip compressed data, from Unix, original size modulo 2^32 10240

GUI에서는 이러한 파일 .tar.gz에 또는 접미사가 붙을 것으로 예상할 수 있습니다 .tgz. 압축된 타르볼을 찾고 있다면 두 가지 접미사 중 하나가 있을 것으로 예상하지만 시스템 자체에서는 이에 대해 걱정하지 않습니다.

결론적으로? 파일 내용에 대한 유용한 힌트를 제공하려면 일반 접미사를 사용하세요. tar압축되지 않은 아카이브 의 경우 .tar또는 압축된 아카이브 .tgz의 경우 ..tar.gzgzip

답변2

.gz파일 이름의 끝을 생략해도 tar cz명령이 출력 파일을 압축 형식으로 쓰는 것을 방지할 수 없으며 대부분의 GNU tar x명령이 입력 파일이 압축되었는지 여부를 자동으로 감지하고 압축을 푸는 것을 방지할 수 없습니다. 즉, 컴퓨터는 .gz파일 사용 방법을 알기 위해 파일 이름 끝에 .

따라서 귀하의 질문은 파일 내용에 대해 다른 사람들과 어떻게 소통하느냐에 달려 있습니다. .gz파일 이름에서 누락된 내용으로 인해 혼란스러워서 잘못된 작업을 수행 할 수도 있습니다 . (때때로 파일 생성과 압축 해제 사이에 몇 달이 지나면 해당 "기타"는)

다른 사람이 .을 보면 .gz파일이 압축되었음을 알고 포함합니다. 별로 중요하지 않다면 생략해도 됩니다.

답변3

적어도 GNU의 경우 ( 내가 아는 tar유일한 GNU입니다 )tar압축 옵션을 지정하기만 하면 됩니다.추출을 사용할 때 확장 기능이 중요하지 않다고 생각합니다 tar xf.
두 번째 확장자( )는 생략하겠습니다 xz.

tar cJf archive.tar  pic*.jpg
file archive.tar
archive.tar: XZ 압축 데이터, 체크섬 CRC64

그리고 첫 번째( tar):

tar cJf archive  pic*.jpg
file archive
아카이브: XZ 압축 데이터, 체크섬 CRC64

jpg확장 기능을 사용해 보겠습니다 .

tar cJf archive.jpg  pic*.jpg
file archive.jpg
archive.jpg: XZ 압축 데이터, 체크섬 CRC64

tar.gz확장을 사용하지만 다음을 사용하여 압축 해 보겠습니다 xz.

tar cJf archive.tar.gz  pic*.jpg
file archive.tar.gz 
archive.tar.gz: XZ 압축 데이터, 체크섬 CRC64

보시다시피, 모든 경우에 tar파일(포함)은 아카이브 이름에 관계없이 올바르게 아카이브되고 압축됩니다. xz확장 기능을 사용하면 차이가 발생합니다. --auto-compress즉, 지원되는 확장 기능을 제공하면 올바른 압축기를 사용하게 됩니다.

tar caf archive.tar.xz  pic*.jpg
file archive.tar.xz
archive.tar.xz: XZ 압축 데이터, 체크섬 CRC64

그리고 확장자를 인식하지 못하는 경우(또는 확장자를 사용하는 경우 tar) 압축되지 않은 아카이브를 생성합니다 tar.

tar caf archive.bag pic*.jpg
file archive.bag 
archive.bag: POSIX tar 아카이브(GNU)

tar xf그럼에도 불구하고, 매뉴얼에 명시된 대로 모든 경우에 파일이 추출됩니다.

압축된 아카이브를 읽는 것은 더욱 간단합니다. GNU tar가 자동으로 해당 형식을 인식하므로 다른 옵션을 지정할 필요가 없습니다. 따라서 다음 명령은 이전 예에서 생성된 아카이브를 나열하고 추출합니다.

# List the compressed archive
$ tar tf archive.tar.gz
# Extract the compressed archive
$ tar xf archive.tar.gz

형식 인식 알고리즘은 특정 압축 형식에 특정한 파일 시작 부분의 특수 바이트 시퀀스인 서명을 기반으로 합니다. 이 방법이 실패하면 tar는 형식을 결정하기 위해 아카이브 이름 접미사를 사용하는 방식으로 대체됩니다(참조: 자동 압축, 인식된 접미사 목록 가져오기).

확장 기능을 사용하지 않는 것이 좋은 습관인가요? 아니요. 다른 사람들이 말했듯이 여기서 주요 목표는 명확성입니다.

관련 정보