tar cvf 또는 tar -cvf?

tar cvf 또는 tar -cvf?

옵션으로 "-" 없이 tar를 사용하는 방법을 배웠지 tar cvfz dir.tar.gz Directory/만 최근에 약간 다른 구문을 발견했습니다 tar -czvf(이 경우 "f"가 마지막 옵션임에 틀림없다고 생각합니다).

둘 다 Linux와 Mac OS에서 실행됩니다. 유닉스 스타일에서 더 이식성이 높은 권장 구문('-' 포함 또는 제외)이 있습니까?

답변1

tar옵션 구문이 아직 표준화되지 않았던 시절의 고대 명령 중 하나입니다. 모든 유용한 호출에는 파일 이름이 제공되기 전에 작업을 지정해야 하기 때문에 대부분 tartar구현에서는 로 시작하지 않더라도 첫 번째 인수를 옵션으로 해석합니다 -. -~이다미닉스.

이전 버전의 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에서도 아무런 문제가 없었습니다.

그런데, 내 생각엔 jarSun의 표준 명령 옵션을 -.

답변3

UNIX에는 현재 옵션 표준을 따르지 않는 프로그램이 거의 없습니다.

하나는 이지만 dddd는 IBM 메인프레임 프로그램 DDR(디스크 덤프 및 복구)에서 파생되었습니다.

하나는 ar이고 다른 하나는 입니다 tar. 내 정보에 따르면 tar는 ar과 유사할 것으로 예상됩니다.

모든 tar 구현은 - 없이 작동하며 유용한 구현에는 -가 필요하지 않습니다. 따라서 이식 가능한 스크립트를 작성하려면 SUSv2 표준을 확인하고 SUSv2 호환 명령줄만 사용하세요.

관련 정보