tar -xvfz foo.tar.gz
오류를 반환 tar: z: Cannot open: No such file or directory
이것은 완전히 이해할 수 있습니다- f
스위치는 파일 이름을 기대하므로 마지막이어야합니다.
그러나 하이픈을 생략 tar xvfz foot.tar.gz
하면 파일이 압축 해제되고 압축이 풀립니다.
나는 이것을 OS X 10.8과 Ubuntu 12.04에서 테스트했습니다.
어떤 아이디어가 있습니까?
[추가 편집]
나는 항상 사용 tar -zxvf foo.tar.gz
합니다. 그러나이 질문은 이 xkcd로 인해 발생 했으며 누군가가 그것을 주장 할 때 놀랍습니다 tar xvfz
.
답변
타르 (구문에 따라 3 종류의 보유 이것을 )
- 긴 옵션 (-파일)
- 짧은 옵션 (-f)
- 이전 옵션 (f)
이전 옵션 구문의 경우 모든 문자는 “tar”뒤에 와야하며 공백없이 단일 덩어리에 속해야합니다. 옵션의 덩어리 이후에 해당 문자에 대한 인수가 동일한 순서를 따르는 한 문자의 순서는 실제로 중요하지 않습니다.
타르 옵션을 작성하는이 오래된 방법은 숙련 된 사용자라도 놀라게 할 수 있습니다. 예를 들어 두 명령은 다음과 같습니다.
# tar cfz archive.tar.gz file
# tar -cfz archive.tar.gz file
상당히 다릅니다. 첫 번째 예는 ‘archive.tar.gz’를 옵션 ‘f’의 값으로 사용하고 ‘z’옵션을 인식합니다. 그러나 두 번째 예는 옵션 ‘f’의 값으로 ‘z’를 사용합니다. 아마도 의도하지 않은 것입니다.
이전 옵션은 이전 버전의 tar와의 호환성을 위해 유지됩니다.
‘-‘가있는 명령은
tar -czf archive.tar.gz file
tar -cf archive.tar.gz -z file
tar cf archive.tar.gz -z file
이것이 귀하의 예제가 “-“가 아닌 “-“없이 작동하는 이유입니다.