
플랫폼: CentOS 6.2
쉘:tcsh
cd
BASH 스크립트를 가지고 놀다가 놀라운 점을 발견했습니다.cd -
옵션, 하지만 많은 질문이 남았습니다...
- 왜
cd -
? 이것은 와 중복되지 않습니까cd ..
?
편집하다
[FatalError가 지적했듯이 이 두 명령은 동일한 작업을 수행하지 않습니다... 따라서 대답은 "아니요"입니다.] -
브라우저에서 플래그를 사용하여 기록을 더 자세히 살펴볼 수 있나요 ?
예를 들어 를 입력하면cd -
이전 디렉터리로 이동하지만 해당 명령을 다시 입력하면 방금 왔던 디렉터리로 이동하여 일종의 루프가 생성됩니다.
여러 수준으로 돌아가는 약칭이 지원되나요?
편집하다
나는 으로 돌아갈 수 있다는 것을 알고 있지만cd ..
이것이 덜 장황한 깊은 뒤쪽으로 가는 관문이 될 수 있기를 바랐습니다. 예를 들어cd -3
vs.cd ../../../
... 그것이 내가 요구하는 것을 명확하게 해주기를 바랍니다....
편집2
현재 피드백에 관해서는 특별한 디렉토리인 동안 터미널에..
내장된 것이 예를 들어 속기를 사용할 수 없는 이유나 내장된 것도 기록을 가질 수 없는 이유를 알 수 없습니다(a la auto / )를 활성화하여 처럼 사용할 수 있습니다 . 나는 이것이 다소 보안/개인 정보 보호 위험이 될 수 있다는 것을 알고 있지만 대부분의 쉘/터미널이 수행하는 명령 기록을 저장하는 것보다 얼마나 최악인지는 알 수 없습니다.cd
../../ ... ../
cd ..5
pushd
popd
cd -3
- 에 대한 맨페이지는 및 (두 명령 모두 동일)를
cd
통해 액세스할 수 있으며 목록 과 플래그만 있습니다. 그러나 입력하면 출력됩니다 . 다른 플래그와 -(뒤로) 옵션이 비표준이라고 가정하는 것이 맞습니까?man cd
help cd
-L
-P
cd --help
Usage: cd [-plvn][-|<dir>].
-n
및 플래그 는 무엇-v
입니까?
둘 다 나를 홈 디렉토리로 다시 데려가는 것 같습니다. 이것이 제가 실험을 통해 알아낼 수 있었던 전부입니다.
웹 리소스에 대한 빠른 읽기[1][2]매뉴얼 페이지와 동일한 종류의 정보를 제공했지만 내 질문에 대답하지 않았습니다.
참고: 위에서 주장한 두 번째 Linux 중심 리소스 cd
에는 두 가지 옵션만 있으므로(분명히 현재에서는 그렇지 않음 CentOS
) 이 기능이 비표준일 수 있다고 가정합니다.
답변1
cd -
와 동일하지 않습니다cd ..
. 명령cd -
은이전의예를 들어, 해당 디렉토리에 있는 경우 을/home/bob
실행하면cd /var/log
실행하면cd -
으로 다시 돌아갑니다/home/bob
.cd ..
반면에 항상 상위 디렉터리로 이동합니다.그런 기록을 유지하고 싶다면 체크아웃하는 것이 좋습니다.
pushd
그러면popd
"디렉토리 스택"을 사용할 수 있습니다.user@host:/etc/init.d$ pushd /var/log /var/log /etc/init.d user@host:/var/log$ pushd /tmp /tmp /var/log /etc/init.d user@host:/tmp$ popd /var/log /etc/init.d user@host:/var/log$ popd /etc/init.d
디렉토리 트리에서 여러 수준으로 되돌아가는 것과 관련하여 제가 아는 일반적인 방법은 없습니다.
..
이는 쉘의 기능이 아니며 실제로 상위 디렉토리를 참조하는 *nix의 특수 디렉토리 링크입니다.cd
내장 명령이므로 플래그와 사용법은 셸에 따라 다를 수 있습니다. 그러나 일반적으로 한 시스템에cd
대한 옵션은bash
다른 시스템과 동일해야 합니다.내 셸에는 이러한 플래그 중 하나도 나열되지 않습니다. 또는 을
bash
사용하여 실험하고 있습니까 ? 사용하고 있다면 본질적으로 완전히 다른 명령을 사용하고 있으므로 아마도 거기 에서 실행하고 엉망으로 만들고 싶을 것입니다 .bash
tcsh
tcsh
bash
cd
편집하다:
매뉴얼 페이지 에 따르면 tcsh
:
-p를 사용하면 dirs와 마찬가지로 최종 디렉터리 스택을 인쇄합니다. -l, -n 및 -v 플래그는 dirs와 마찬가지로 cd에도 동일한 효과를 가지며 -p를 의미합니다.
dirs
( 자세한 내용을 읽고 싶다면 섹션을 확인하세요 .) 기본적으로 명령이 실행된 후 디렉터리 스택을 인쇄하는 것처럼 보입니다.
host:43> pushd /etc/init.d
/etc/init.d ~
host:44> pushd /var/log
/var/log /etc/init.d ~
host:45> pushd /tmp
/tmp /var/log /etc/init.d ~
host:46> cd -p
~ /var/log /etc/init.d ~
host:47> cd -v
0 ~
1 /var/log
2 /etc/init.d
3 ~
host:48> popd
/var/log /etc/init.d ~
host:49> cd -v
0 ~
1 /etc/init.d
2 ~
둘 다 디렉토리 스택을 표시하지만 -v
읽기가 조금 더 쉬워 보입니다. 스택의 맨 위(요소 0)는 현재 디렉터리이고, 1은 popd
한 번 실행하면 이동하는 위치입니다.