쉘이 있던 과거 디렉토리 기록을 보는 방법?


2

때때로 나는 내가하고있는 것을 알아 내기 위해 명령 히스토리를 되돌아보고 싶다. 때때로 각 명령에 대한 cwd가 무엇인지 아는 것이 도움이 될 것입니다.

그래서, 이것을 추적 할 수있는 방법이 있는지 궁금합니다. 나는 많은 중복을 가지고 있지만 히스토리 파일의 히스토리로 cwd를 덤프하는 것은 끔찍한 일이 아니라고 생각합니다. 따라서 프롬프트 렌더링의 일부로 zsh가 현재 기록 색인과 cwd를 다른 로그에 쓰도록 할 수 있도록 구성하는 것이 좋습니다. 나중에 사용하기 위해 정보를 저장하기에 충분합니다.

답변:


2

내가 아는 한, 이것은 당신이 직접 작성해야 할 것입니다. 파일 계층 구조가 전혀 바뀌면 상황이 약간 혼란 스러울 수 있습니다. 어쨌든, 직접 작성하기로 결정한 경우이 링크가 도움 될 수 있습니다.


1

히스토리 파일을보고있는 경우 올바른 실행 위치를 이해하기 위해보고있는 명령 앞에 있는 명령 을 검색해야 cd합니다 .

당신이 트랙을 싶다면 pwd당신의 기록 파일에 일부 추적기를 작성해야합니다.

간단하게 수행하는 몇 가지 방법 :

.0 무엇보다도, 당신의 위치를 ​​찾는 간단한 방법.bash_history:

grep <.bash_history '^cd \|theSpecificCommandISearchFor'

.1 script 다음을 입력하여 쉘 세션을 시작할 수 있습니다.

script -a /tmp/script-XXXX -t 2>/tmp/script-XXXX.tm

그런 다음 세션을 종료 한 후 다음을 수행 할 수 있습니다.

scriptreplay /tmp/script-XXXX.tm /tmp/script-XXXX

모두 의 수행 있었는지를.

이 솔루션은 일반적인 모든으로 미세하게 작동해야 대화 형 commandes 줄 도구 (뿐만 아니라 bash, 나 shell당신도 절약 할 수있다, vim이 도구를 사용하여 세션).

당신은 당신의 상단에이를 추가 할 수 있습니다 .bashrc(당신이 사용하는 경우 )

# THIS WILL LOG EVERYTHING ON A TYPSCRIPT FILE USING script TOOL! # 
if ! [[ "$(ps ho cmd $PPID)" =~ ^/usr/bin/script\ -t\ $HOME/.bash_script_ ]]
  then
    function runScript() {
        local sname=$HOME/.bash_script_$(date +%F_%H-%M-%S_$$)
        exec /usr/bin/script -t 2> $sname.tim $sname
        exit 0
    }
    runScript
  fi

.2trap debug 다음과 같은 대체 기록 파일을 만드는 데사용합니다.

trap 'echo "$PWD :: $BASH_COMMAND" >>/tmp/my_trapDebug_history' debug

참고 : 이것은 에서 작동하며 또는 다른 shell인터프리터 와 작동하는지 또는 어떻게 작동하는지 모르겠습니다 .zshdash

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.