cd 명령 Linux 및 미스터리 플래그

cd 명령 Linux 및 미스터리 플래그

플랫폼: CentOS 6.2쉘:tcsh

cdBASH 스크립트를 가지고 놀다가 놀라운 점을 발견했습니다.cd -옵션, 하지만 많은 질문이 남았습니다...

  1. cd -? 이것은 와 중복되지 않습니까 cd ..?

    편집하다
    [FatalError가 지적했듯이 이 두 명령은 동일한 작업을 수행하지 않습니다... 따라서 대답은 "아니요"입니다.]

  2. -브라우저에서 플래그를 사용하여 기록을 더 자세히 살펴볼 수 있나요 ?

    예를 들어 를 입력하면 cd -이전 디렉터리로 이동하지만 해당 명령을 다시 입력하면 방금 왔던 디렉터리로 이동하여 일종의 루프가 생성됩니다.

    여러 수준으로 돌아가는 약칭이 지원되나요?

    편집하다
    나는 으로 돌아갈 수 있다는 것을 알고 있지만 cd ..이것이 덜 장황한 깊은 뒤쪽으로 가는 관문이 될 수 있기를 바랐습니다. 예를 들어 cd -3vs. cd ../../../... 그것이 내가 요구하는 것을 명확하게 해주기를 바랍니다....

    편집2
    현재 피드백에 관해서는 특별한 디렉토리인 동안 터미널에 ..내장된 것이 예를 들어 속기를 사용할 수 없는 이유나 내장된 것도 기록을 가질 수 없는 이유를 알 수 없습니다(a la auto / )를 활성화하여 처럼 사용할 수 있습니다 . 나는 이것이 다소 보안/개인 정보 보호 위험이 될 수 있다는 것을 알고 있지만 대부분의 쉘/터미널이 수행하는 명령 기록을 저장하는 것보다 얼마나 최악인지는 알 수 없습니다.cd../../ ... ../cd ..5pushdpopdcd -3

  3. 에 대한 맨페이지는 및 (두 명령 모두 동일)를 cd통해 액세스할 수 있으며 목록 과 플래그만 있습니다. 그러나 입력하면 출력됩니다 . 다른 플래그와 -(뒤로) 옵션이 비표준이라고 가정하는 것이 맞습니까?man cdhelp cd-L-P

    cd --helpUsage: cd [-plvn][-|<dir>].



  4. -n및 플래그 는 무엇 -v입니까?

    둘 다 나를 홈 디렉토리로 다시 데려가는 것 같습니다. 이것이 제가 실험을 통해 알아낼 수 있었던 전부입니다.

웹 리소스에 대한 빠른 읽기[1][2]매뉴얼 페이지와 동일한 종류의 정보를 제공했지만 내 질문에 대답하지 않았습니다.

참고: 위에서 주장한 두 번째 Linux 중심 리소스 cd에는 두 가지 옵션만 있으므로(분명히 현재에서는 그렇지 않음 CentOS) 이 기능이 비표준일 수 있다고 가정합니다.

답변1

  1. cd -와 동일하지 않습니다 cd ... 명령 cd -이전의예를 들어, 해당 디렉토리에 있는 경우 을 /home/bob실행하면 cd /var/log실행하면 cd -으로 다시 돌아갑니다 /home/bob. cd ..반면에 항상 상위 디렉터리로 이동합니다.
  2. 그런 기록을 유지하고 싶다면 체크아웃하는 것이 좋습니다. 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의 특수 디렉토리 링크입니다.

  3. cd내장 명령이므로 플래그와 사용법은 셸에 따라 다를 수 있습니다. 그러나 일반적으로 한 시스템에 cd대한 옵션은 bash다른 시스템과 동일해야 합니다.

  4. 내 셸에는 이러한 플래그 중 하나도 나열되지 않습니다. 또는 을 bash사용하여 실험하고 있습니까 ? 사용하고 있다면 본질적으로 완전히 다른 명령을 사용하고 있으므로 아마도 거기 에서 실행하고 엉망으로 만들고 싶을 것입니다 .bashtcshtcshbashcd

편집하다:

매뉴얼 페이지 에 따르면 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한 번 실행하면 이동하는 위치입니다.

관련 정보