"가장 최근에 수정된 하위 디렉터리로 변경"을 의미하는 간단하고 이식 가능한 방법이 있는지 궁금합니다. 사용할 수 있지만 ls
더 awk
좋은 방법이 있을 수 있습니다.
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)
또한 작동해야합니다.