cd 명령 기록에서 "뒤로/앞으로"기능을 구현하는 3 줄 Alias

경위



무카~해 신인 연수로 Unix 하고 있을 때에, 여가였기 때문에 써 보았던 녀석입니다.

"cd -"라도, 1개전의 디렉토리에는 돌아갈 수 있습니다만, 1개만 밖에 돌아갈 수 없기 때문에 굉장히 되어 썼습니다.
지금 보면, 약간 이해에 괴롭습니다만, 이 기사 올리고 나서, 재차 재검토하면 이해할 수 있었습니다(웃음). 심플하지만, 하지만 대체로 움직이는구나. . . 검토하면 상당히 움직이지 않았습니다. (수치)이므로, 재검토해 지금은 괜찮아. (이것)

좋은 곳 (2016/03/15 추가)



pushd/popd라고 하는 방법도 있다고 하는 tweet 받고, 확인한 바 확실히 있는 것 같네요. 몰랐다. 고맙습니다.
단, pushd라든지 지정하지 않으면 스택에 쌓을 수 없다는 것은 귀찮다.

이 alias의 특징으로서는, 이하가 될까 생각합니다.
・유저는, 특히 스택을 의식하지 않고 일상적으로 cd XXXX라든지 하면 된다.
・히스토리를 돌아가고 싶을 때는 b, 돌아온 히스토리를 역시 원래대로 진행(?)하고 싶을 때는 f로 진행합니다.
・일부 히스토리를 돌아와서, 거기서 다시 전혀 다른 Dir에 cd하면, 거기로부터 새롭게 히스토리를 쌓아 올리기 때문에, 브라우저의 이력의 움직임과 거의 여러분입니다.
・물론, cd -cd 도 문제없이 움직인다.

구현



별칭으로 다음 세 가지를 등록합니다.

2016/03/15 추가
원래 녀석은 버그가있었습니다. 스톡해 주는 사람이 의외로 고맙다는 것에 계셨으므로, 대단히 굉장히,로 공개해 버릴까라고 반성해, 10년전의 졸음을 다소 보충했습니다.
다음은 꽤 제대로 움직입니다.
alias b='if [[ $l -le 1 ]]; then l=1; if [[ $f2 -eq 1 ]]; then f2=;if [ "$la" != "$PWD" ]; then h=$PWD:$h;la=$PWD;fi;fi;fi;((l=l+1));f=1;cd'
alias f='f=1;if [[ $l -le 1 ]]; then l=1;f=;else ((l=l-1));cd;fi'
alias cd='((l2=l+1));if [[ $f -eq 1 ]];then f=;t=`echo $h|cut -f$l -d:`;else f2=1;if [ "$la" != "$PWD" ]; then h=$PWD:`echo $h|cut -f$l2- -d:`;la=$PWD;fi;l=0;t=;fi;cd $t'

이하는 본 기사 공개 당초의 것입니다만, 여러가지 이케 없기 때문에 비추천. ( 이에야스의 똥 새는 그림 적으로 자계의 마음을 담아 그대로 싣습니다.)
alias b='flag=1;if [[ $level -le 0 ]]; then level=0;fi;((level=level+1));cd'
alias f='flag=1;if [[ $level -le 0 ]]; then level=0;else ((level=level-1));fi;cd'

alias cd='if [[ $flag -eq 1 ]];then target_dir=`echo $thpa|cut -f$level -d:`;else thpa=$PWD:`echo $thpa|cut -f$level- -d:`;level=0;target_dir=;fi;flag=;cd $target_dir'

그래서, 원하는만큼 cd라든지하고, b는 명령 우울증과 브라우저의 뒤로 버튼과 같습니다.
f라고 명령 치면, 브라우저의 진행하는 버튼과 같다. 그뿐입니다.

해설은, , 별로 기억하지 않기 때문에 할 수 없습니다. . 그 중 쓰기.
대체로 움직입니다. 대체로. 비교적 제대로 움직입니다. 비교적 희귀한 케이스로, b해도 1회만 이동하지 않고 같은 디렉토리에 남는 것처럼 보이는 케이스가 있는 정도로, 나머지는 괜찮다. (의 것.)

이상입니다.

사실, (이것도 2016/03/15 추가)



저자는 별로 사용하지 않습니다.
라는 것도
  • 연수 후 어사인된 부서에서는 수백 개의 유닉스 서버의 운용이라든지 하고 있었기 때문에, 일단 서버 마다의 Alias라든지 관리 귀찮았기 때문에. "이쪽에는 있지만 코치에는 없잖아. 아---"가 된다.
  • 선배와 대화하면, 「그렇게 편리한 것이 아무것도 없는 상황에서 장애 대응할 수밖에 없으면 어떻게 한다. 했다.
  • 일로 그러한 몸이 되어 버렸기 때문에, 원래 alias로 무언가 등록한다는 행위 자체를 하지 않게 되었다.
  • 지금은 복수의 Unix(Linux)에 들어가고, 만들거나 지우기도 많기 때문에, 점점 개별 커스터마이즈는 하지 않는 것이 당연하게 되었다.

  • 아무튼, 그런 스타일이므로 실질적으로 별로 사용할 수 없는 것입니다.
    사람에 따라서는 도움이 될지도 모르기 때문에, 그러한 사람은 사용해 보세요.

    좋은 웹페이지 즐겨찾기