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.gz
gzip
답변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는 형식을 결정하기 위해 아카이브 이름 접미사를 사용하는 방식으로 대체됩니다(참조: 자동 압축, 인식된 접미사 목록 가져오기).
확장 기능을 사용하지 않는 것이 좋은 습관인가요? 아니요. 다른 사람들이 말했듯이 여기서 주요 목표는 명확성입니다.