유닉스에서 즉시 역사에 접근하는 방법? 있다는 것을 기억 합니다. cd

예를 들어 내가

mkdir thisismyfolder912

나는 전환하는 thisismyfolder912것보다 더 쉬운 방법이 있다는 것을 기억 합니다.

cd thisismyfolder912

그 방법은 무엇이며 어떻게 작동합니까? 또한 이것을 사용할 수있는 다른 방법은 무엇입니까?



답변

고전적인 역사 확장 또는 Readline 처리에 대해 이야기하고 있습니까? cd !$다음 입력 줄에서 이전 줄의 마지막 인수를 대체 M-.하거나 M-_Readline을 사용하여 줄을 바꿉니다.


답변

귀하의 질문이 명령 기록에 액세스하는 것에 관한 것이라면,이 유명한 명령을 사용해보십시오

history 

Ctrl+ 을 시도 r하고 최근에 입력 한 것을 기억하려는 명령을 입력하기 시작할 수도 있습니다 .

(reverse-i-search)`cd ': cd mydir/data/

ESC명령을 선택하거나 종료하려면 누르 십시오. 이것은 적어도 SuSE에서 작동합니다. 다른 배포판에 대해 확실하지 않습니다.


답변

Alt+ 만큼 간단합니다.

$ mkdir lasdfjalsdkjf
$ cd 

Alt + .

$ cd lasdfjalsdkjf

답변

이것은 항상 나를 위해 일했습니다 :

mkdir thisismyfolder
cd $_

답변

다음과 같은 경우 다른 실에서 팁을 집어 올리십시오.

bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward

.bashrc에서 기록에서 무언가를 입력하기 시작한 다음 위쪽 화살표를 누른 다음 항목별로 기록 항목을 거치지 않고 이미 항목으로 시작하는 이전 항목으로 건너 뜁니다. 입력했습니다.

나는 이것이 질문에 주어진 특정 예에서별로 도움이되지 않는다고 생각하지만, 즉시 역사에 액세스하는 데 도움이되는 것입니다.


답변

bash를 사용하는 경우 pushd및을 제안 popd합니다. 디렉토리 스택을 만들어 빠르게 찾아 볼 수 있습니다. 이 예제를보십시오 :

PWD:~$ pushd /opt/google/chrome/resources/
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ pushd /etc/cron.daily/
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ pushd /opt/pac/lib/method/
/opt/pac/lib/method /etc/cron.daily /opt/google/chrome/resources ~
PWD:/opt/pac/lib/method$ popd
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ popd
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ popd
~
PWD:~$

답변

관련 메모에서 bash에서 histverify를 사용하는 것이 좋습니다. 이것을 ~ / .bashrc에 넣으십시오.

shopt -s histverify

이렇게하면! $ 또는 다른 히스토리 기능을 확장 한 후 bash가 명령을 인쇄하게되며 실제로 실행하기 위해 Enter 키를 다시 누르기 전에 명령을 볼 수 있습니다. 나를 위해, 위생 검사는 때때로 추가 키를 누를 가치가 있습니다. 내가 cd foo아닌 명령을 실행하고 있는지 확인하고 싶습니다 rm -rf foo

나는 종종 Ctrl-R접근 방식을 사용합니다 Alt-.(이 시나리오는 귀하가 설명하는 시나리오에 적합합니다). 때때로! $를 사용할 것입니다.

이들은 매우 유용한 범용 기술입니다.

그러나 특정 질문을 해결하려면 다음을 수행하십시오.

디렉토리를 만들고 CD에 직접 CD를 넣는 것은 일반적인 조합으로 마무리하는 기능이 유용합니다.

function mcd {
  local newdir='_mcd_command_failed_'
  if [ -d "$1" ]; then   # Dir exists, mention that
    echo "$1 exists..."
    newdir="$1"
  else
    if [ -n "$2" ]; then   # We've specified a mode
        command mkdir -p -m $2 "$1" && newdir = "$1"
    else                   # Plain old mkdir
        command mkdir -p "$1" && newdir="$1"
    fi
  fi
  builtin cd "$newdir"   # No matter what, cd into it
}

용법: mcd thisismyfolder