`-`는 cd에만 사용됩니까? 있습니다. -이전과 다른 -의미를 기억하지는 않지만 이전에

cd - 현재 디렉토리와 이전 디렉토리 사이를 전환 할 수 있습니다.

-이전과 다른 -의미를 기억하지는 않지만 이전에 다른 명령에 대한 인수로 사용 된 것으로 보입니다 cd.

나는 그것이 -작동하지 않는 것을 발견했다 ls.

되어 - 에만 CD를 사용?



답변

POSIX 유틸리티 구문 가이드 라인 (구체적 # 13)는 파일명으로부터 판독 예상 유틸리티의 그 지정 -, 표준 입력 수단에 기록하기위한 파일명을 예상 유틸리티위한 -수단 표준 출력. 예를 들어, cat somefile -내용을 somefile표준 출력에 복사 한 다음 표준 입력에서 읽은 내용을 복사합니다 .

이 지침은 cd파일을 읽거나 쓰지 않기 때문에 명령에 적용 되지 않습니다. cd인수 -는“이전 디렉토리”를 의미합니다. 명령 cd -은와 동일합니다 cd "$OLDPWD" && pwd. 이 동작은 해당 cd명령과 관련이 있으며 직접 영감을받은 명령과 같은 명령 pushd입니다.

참고 -피연산자가 아닌 옵션입니다. 단지 시작 또는 옵션 -이 아닌 인수 만 있습니다. 피연산자가된다는 주된 의미 는 특별한 의미에 영향을 미치지 않습니다. 예를 들어, 이라는 하위 디렉토리로 변경하지만와 동일 하지만 이라는 디렉토리 로 변경되지 않습니다 . 마찬가지로, 호출 된 파일이 아니라 표준 입력에서 읽습니다 .-----cd -- -P-Pcd -- -cd --cat -- --


답변

-POSIX 유틸리티 구문 지침 에 표준 입력으로 정의되어 있습니다 .

Guideline 13:
For utilities that use operands to represent files to be opened for either
reading or writing, the '-' operand should be used to mean only standard input
(or standard output when it is clear from context that an output file is being
specified) or a file named -.

읽기 또는 쓰기 용 파일로 작동하는 유틸리티에 대한이 정의를 볼 수 있습니다. cd이 유틸리티에 속하지 않으므로 -cd에서는이 지침을 따르지 않습니다.

게다가 POSIX는 cd- 와 함께 고유 한 의미를 갖습니다 .

-
    When a <hyphen> is used as the operand, this shall be equivalent to the
    command:

    cd "$OLDPWD" && pwd

    which changes to the previous working directory and then writes its name.


답변

cd -은 약칭으로 cd "$OLDPWD" && pwd, $OLDPWD디렉토리를 방금 디렉토리로 변경할 때마다 설정됩니다.

취급은 -응용 프로그램 에 따라 다릅니다. 일부 응용 프로그램은 사용 -나타 내기 위해 STDIN, 예를 들면 grep,awk

다른 응용 프로그램을 사용할 수 -와 마이클의 대답 지정하는 등 자신이 선택한 무엇을위한 속기로 su, -속기가있다--login


답변

마이클이 있음을 언급하고 있지만 su다른 응용 프로그램을 사용할 수 있으며, -그들이 원하는대로 의미로, (표준 입력은 일반적인 읽기) 힘내 사용합니까 -방법과 유사한 방식으로 cd수행 지점을 변경.

$ git status
On branch master

$ git checkout foobar
$ git status
On branch foobar

$ git checkout -
$ git status
On branch master


답변

모든 프로그램 -은 원하는 것을 의미하기 위해 인수로 사용할 수 있습니다 . 하나의 일반적인 예는의 약자로 su사용 -됩니다 --login. 내가 생각할 수있는 유일한 규칙은 파일에서 읽은 프로그램이 “stdin에서 읽은”- 을 의미 하기 위해 자주 사용 하지만, 전적으로 프로그램에 달려 있다는 것입니다


답변

여기에 내 두 센트를 추가합니다. 여러 사람들이 이전에 제안한 것처럼 ‘-‘를 사용하여 ps2pdf 도구가 표준 입력에서 읽도록 지시합니다.

man -t ls | ps2pdf - ls.pdf

위의 하나의 라이너 는 현재 디렉토리 에 ls 에 대한 pdf 버전의 매뉴얼 페이지를 작성합니다 .
누군가가 유용하다고 생각하기를 바랍니다 :).


답변

응답으로 gnouc , -자체 의미가있다 cd.

그러나를 -사용하여 다른 프로그램 의 동작을 복제 할 수 있습니다 ~-. 예를 들면 다음과 같습니다.

cd /etc
cd /
ls ~-             #lists the contents of the /etc directory
vim ~-/fstab      #opens the file /etc/fstab in vim