디렉토리에 대한 tar 파일을 생성하려면 , 및 옵션과 함께 명령을 입력할 수 tar
있습니다 .compress
verbose
file
$ tar -cvf my.tar my_directory/
하지만 다음과 같은 작업도 수행할 수 있습니다.
$ tar cvf my.tar my_directory/
즉, 옵션 앞에 대시(-)가 없습니다. 옵션 목록에 대시(-)를 전달하는 이유는 무엇입니까?
답변1
UNIX 응용 프로그램은 역사적으로 여러 가지 다른 옵션 모드를 사용해 왔습니다. 다음과 같은 몇 가지 오래된 것아스팔트, 위치 구성표 사용:
명령 옵션 매개변수
예를 들어 tar는
타르*물건*f"작업된 파일"*"작업할 파일 경로"*
혼란을 피하기 위해 우리는 먼저아스팔트그리고 오래된 플래그 인수 스타일을 사용하는 일부 다른 프로그램에서는 플래그를 대시로 구분할 수 있지만 대부분의 노인들은 이를 무시합니다.
일부 다른 명령에는 다음과 같이 더 복잡한 명령줄 구문이 있습니다.일(1)배나무의 플래그, 등호, 경로 이름, 매개 변수 및 자고새를 사용하는데, 모두 이상합니다.
BSD 및 이후 버전의 유닉스에서는 "-"로 표시된 단일 문자 플래그로 수렴되지만 이로 인해 몇 가지 문제가 발생하기 시작합니다.
- 이러한 징후는 기억하기 어려울 수 있습니다.
- 때때로 "-"가 포함된 이름을 사용하고 싶을 때가 있습니다.
- 특히 GNU 도구를 사용하면 가능한 플래그 수가 제한되기 시작합니다. 따라서 GNU 도구에는
--output
.
그런 다음 Sun은 추가 "-"가 중복된다고 판단하고 단일 "-"가 있는 긴 스타일 플래그를 사용하기 시작했습니다.
그렇기 때문에 엉망진창이 되었습니다.
답변2
표준 UNIX 방식으로 tar 옵션을 제공할 수 있습니다 tar -c -f foo -v -B file1 file2 file3
. 여기서 명령줄 끝에 있는 인수나 파일 이름과 옵션을 구별하려면 대시가 필요합니다. 또는 첫 번째 인수에 모든 옵션을 넣을 수 있습니다. 이 경우 대시는 선택 사항입니다.
ps
그런 다음 SysV-ish 옵션을 사용하는 경우 대시가 있고 BSD-ish 옵션을 사용하는 경우 대시를 생략하여 상황을 더욱 혼란스럽게 만듭니다.
우리는 그것에 대해 이야기도 하지 않습니다 find
.
답변3
대시는 옵션 매개변수 이름과 값을 명확하게 하는 데 사용됩니다. 나는 이것이 표준 컨벤션에 더 가깝다고 생각합니다.
답변4
앞에 마이너스 기호/대시(-)를 사용하면 옵션의 정확한 순서를 유지해야 합니다. 빼기 기호가 없으면 옵션 순서가 변경될 수 있습니다.
예를 들어:
# tar -xvf yourfile.tar
# tar vxf yourfile.tar