bash: 가장 최근에 수정된 하위 디렉터리로 CD를 이동합니다.

bash: 가장 최근에 수정된 하위 디렉터리로 CD를 이동합니다.

"가장 최근에 수정된 하위 디렉터리로 변경"을 의미하는 간단하고 이식 가능한 방법이 있는지 궁금합니다. 사용할 수 있지만 lsawk좋은 방법이 있을 수 있습니다.

cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' )

수백 개의 하위 디렉터리가 포함된 "출력 파일" 디렉터리에서 명령을 실행해야 하며, 99%의 경우 가장 최근에 변경된 디렉터리로 이동하려고 합니다. 디렉토리 이름이 무엇인지 미리 알 수 없습니다.

답변1

디렉토리에 인쇄할 수 없는 문자가 포함되어 있지 않다고 가정합니다.

cd  "$(\ls -1dt ./*/ | head -n 1)"

(디렉토리에 대한 심볼릭 링크도 고려합니다.)

zsh로 전환해도 괜찮다면:

cd ./*(/om[1])

또는 첫 번째 예와 같이 디렉터리에 대한 심볼릭 링크를 포함합니다.

cd ./*(-/om[1])

답변2

종속성 없이 출력 ls하고 GNU coreutils를 가정합니다.

cd "$(stat --printf='%Y:%n\0' ./*/ | sort -zt: -k1nr | head -zn1 | cut -zd: -f2-)"

답변3

이 짧은 버전의 명령을 사용해 보세요.

cd $(ls -t | head -n 1)   

답변4

마찬가지로 이미 말했듯이

cd $(ls -td <prefix for the path and file name>* | head -n 1)

또한 작동해야합니다.

관련 정보