cd -
현재 디렉터리와 이전 디렉터리 간에 전환할 수 있습니다.
이전에 다른 명령에 대한 인수로 사용된 것을 본 것 같습니다 . if 가 with 와 같은 의미인지 -
는 기억나지 않습니다 .-
cd
나는 이것이 -
작동하지 않는다는 것을 알았습니다 ls
.
-
CD에만 사용할 수 있나요?
답변1
-
에 정의됨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.
답변2
cd -
이는 실제로 디렉토리를 방금 있던 디렉토리로 변경할 때마다 설정되는 약어입니다 cd "$OLDPWD" && pwd
.$OLDPWD
처리는 -
응용 프로그램에 따라 다릅니다. 일부 응용 프로그램은 예를 들어 다음을 -
나타내는 데 사용됩니다 .STDIN
grep
awk
다른 응용 프로그램은 Michael의 답변에 지정된 대로 -
선택한 모든 것에 대한 약칭 으로 사용할 수 있습니다 su
.-
--login
답변3
이것POSIX 유틸리티 구문 가이드(구체적으로 #13) 파일 이름을 읽을 것으로 예상되는 유틸리티의 경우 -
표준 입력을 나타내고, 파일 이름을 쓸 것으로 예상되는 유틸리티의 경우 -
표준 출력을 나타냄을 지정합니다. 예를 들어 표준 출력에 cat somefile -
내용을 복사한 somefile
다음 표준 입력에서 읽은 내용을 복사합니다.
cd
이 명령은 파일을 읽거나 쓰지 않으므로 이 가이드는 적용되지 않습니다 .cd
뭔가 다른 일을 합니다. 매개변수는 -
"이전 디렉터리"를 의미합니다. 이 명령 cd -
은 와 동일합니다 cd "$OLDPWD" && pwd
. 이 동작은 cd
명령뿐만 아니라 직접 영감을 받은 명령에도 적용됩니다 pushd
.
이는 -
옵션이 아니라 피연산자입니다. or -
가 아닌 and로 시작하는 매개변수 만 옵션입니다. 피연산자라는 주요 의미는 그 특별한 의미에 영향을 주지 않는 것입니다. 예를 들어 이라는 하위 디렉터리로 변경되지만 이라는 디렉터리로는 변경되지 않습니다 . 다시 말하지만, 호출하는 file 에서 읽는 대신 표준 입력에서 읽습니다.-
--
--
cd -- -P
-P
cd -- -
cd -
-
cat -- -
-
답변4
Michael이 이것을 언급했지만 su
다른 응용 프로그램에서는 이를 사용하여 -
원하는 것을 의미할 수 있습니다(stdin에서 읽는 것이 일반적입니다).Git이 사용되는 방식은 실제로 -
다음과 같습니다.cd
, 지점 변경용.
$ git status
On branch master
$ git checkout foobar
$ git status
On branch foobar
$ git checkout -
$ git status
On branch master