![tar cvf 또는 tar -cvf?](https://linux55.com/image/20233/tar%20cvf%20%EB%98%90%EB%8A%94%20tar%20-cvf%3F.png)
옵션으로 "-" 없이 tar를 사용하는 방법을 배웠지 tar cvfz dir.tar.gz Directory/
만 최근에 약간 다른 구문을 발견했습니다 tar -czvf
(이 경우 "f"가 마지막 옵션임에 틀림없다고 생각합니다).
둘 다 Linux와 Mac OS에서 실행됩니다. 유닉스 스타일에서 더 이식성이 높은 권장 구문('-' 포함 또는 제외)이 있습니까?
답변1
tar
옵션 구문이 아직 표준화되지 않았던 시절의 고대 명령 중 하나입니다. 모든 유용한 호출에는 파일 이름이 제공되기 전에 작업을 지정해야 하기 때문에 대부분 tar
의 tar
구현에서는 로 시작하지 않더라도 첫 번째 인수를 옵션으로 해석합니다 -
. -
~이다미닉스.
이전 버전의 POSIX 및 Single Unix에는 작업 지정자 앞에 오지 않는 명령이 포함되어 있습니다 tar
. -
단일 Unix v2에는 기존 아카이버가 있습니다.cpio
그리고tar
, 그러나 기존 구현이 너무 많이 다르기 때문에 표준화할 수 있는 플래그가 거의 없으므로 표준에서는 다음과 같은 새로운 명령을 도입했습니다.pax
, 이후 유일한 표준 아카이버입니다.단일 유닉스 v3. 표준을 준수하려면 이를 사용하십시오 pax
. 그러나 많은 Linux 배포판에는 기본 설치에 포함되어 있지 pax
않으며미닉스. 실제로 이식성을 원한다면 tar cf filename.tar
.
답변2
공룡일지도 모르지만, cvf
오히려 애용하는 편이 휴대성이 더 좋은 것 같아요 -cvf
. 대부분의 Linux 배포판은 GNU tar를 사용하고 *BSD도 마찬가지라고 생각합니다. 하지만 독점 Unix는 여전히 이전 SysV tar를 사용하고 있다는 것을 알게 될 것입니다.필요하다-
옵션에는 a를 사용 하지 마세요 .
-cvf
나는 (또는 아무것도) 사용하지 않으며 -xf
가장 발전된 Arch Linux에서도 아무런 문제가 없었습니다.
그런데, 내 생각엔 jar
Sun의 표준 명령 옵션을 -
.
답변3
UNIX에는 현재 옵션 표준을 따르지 않는 프로그램이 거의 없습니다.
하나는 이지만 dd
dd는 IBM 메인프레임 프로그램 DDR
(디스크 덤프 및 복구)에서 파생되었습니다.
하나는 ar
이고 다른 하나는 입니다 tar
. 내 정보에 따르면 tar는 ar과 유사할 것으로 예상됩니다.
모든 tar 구현은 - 없이 작동하며 유용한 구현에는 -가 필요하지 않습니다. 따라서 이식 가능한 스크립트를 작성하려면 SUSv2 표준을 확인하고 SUSv2 호환 명령줄만 사용하세요.