답변1
파일 이름을 사전순으로 나열하는 ls
것과 같은 명령 및 와일드카드. *
숫자로만 구성된 파일 이름의 경우 모든 파일 이름의 자릿수가 동일한 경우에만 숫자 순서에 해당합니다. 파일 이름은 에포크 이후의 밀리초 수인 것으로 보입니다. 시간이 2001-09-09 01:46:40에서 2286-11-20 17:46:39.999 사이인 한 사전순으로 작동합니다.
zsh에서,당신은 그것을 사용할 수 있습니다[-1]
글로벌 예선마지막 게임을 플레이하세요.
cd *([-1])
이는 다양한 방법으로 개선될 수 있습니다.
cd *(/[-1])
다른 유형의 파일이 있는 경우 디렉터리만 일치하는지 확인하세요.cd *(-/[-1])
또한 디렉터리에 대한 기호 링크도 포함됩니다.cd <->([-1])
숫자로만 구성된 이름만 일치하는지 확인합니다.cd <->(/n[-1])
사전식 순서가 아닌 숫자 순서로 이름을 정렬합니다(예: 뒤 대신10
뒤에 정렬 ).9
1
zsh의 또 다른 접근 방식은 완성을 사용하는 것입니다. 현재 완료 설정에 따라 이는 다소 간단합니다. 설정하면glob_complete
옵션(나는 이것을 한다) 그리고 묶는다reverse-menu-complete
키에 Shift+ 라고 가정해 보겠습니다 Tab. 이 작업은 다음 코드를 사용하여 수행할 수 있습니다 .zshrc
.
setopt glob_complete
bindkey '\e\t' reverse-menu-complete
cd *
Shift그런 다음 +를 입력하면 마지막 일치 항목으로 대체됩니다 Tab.*
다른 껍질이 좋은 기능이 빠졌네요. 작은 기능을 만들 수 있습니다.
cdlast () {
set ./*/
shift "$(($#-1))"
cd "$1"
}
선택적 행간을 사용하십시오 -
. 그러나 로 시작하는 파일 이름은 -
문제가 있으므로 사용하지 않는 것이 좋습니다.
답변2
디렉토리만 만든 경우 --를 사용하여 마지막 파일 /dir을 찾을 수 있습니다.
ls -tr1 |tail -1
to cd to it --
cd $(ls -tr1 | tail -1)
파일과 디렉터리가 모두 있는 경우 더 많은 작업이 필요합니다.
cd $(ls -ltr |grep ^d |tail -1 | awk '{print $9}')
기타 옵션 - mtime 조회 사용(필터링할 디렉터리를 생성할 때 창을 알아야 함) 디렉터리가 큰 경우(100,000개 이상의 파일) 이러한 모든 명령을 실행하는 데 오랜 시간이 걸릴 수 있으므로 가장 좋은 방법은 파일을 생성하는 것입니다. 마지막 디렉토리를 포함하는 디렉토리 파일을 생성하고 이를 사용하여 최신 디렉토리로 이동합니다.
답변3
.bashrc 파일에 별칭이나 함수를 만들 수 있습니다. 예를 들면 다음과 같습니다.
alias lcd="cd $( ls -1 | tail -1 )"
또는
lcd() { cd $( ls -1 | tail -1 ) ; }
답변4
디렉토리 생성 프로세스를 제어할 수 있는 경우 항상 latest
최신 디렉토리를 가리키는 명명된 기호 링크를 작성하도록 디렉토리를 조정할 수 있습니다.
이것이 디지털 카메라 카드에서 사진을 추출하는 스크립트에서 수행하는 작업이며 나에게 완벽하게 작동합니다.
$ ls -loghd pictures/[12l]*
dr-xr-xr-x 4 4.0K May 24 2012 pictures/1989
dr-xr-xr-x 6 4.0K May 24 2012 pictures/1990
...
dr-xr-xr-x 38 4.0K Dec 15 19:59 pictures/2015
drwxr-xr-x 3 4.0K Jan 10 23:03 pictures/2016
lrwxrwxrwx 1 34 Jan 10 23:03 pictures/latest -> 2016/2016-01-10