이 기사와 관련하여,가장 최근에 수정된 하위 디렉터리로 cd
배쉬 cd "$(\ls -1dt ./*/ | head -n 1)"
zsh cd ./*(/om[1])
가장 최근에 수정된 디렉터리로 변경합니다.
하지만 스크립트는 없습니다생선 껍질.
config.fish에서 bash 코드를 사용하면 다음과 같이 표시됩니다.
$(...) is not supported. In fish, please use '(\ls)'
누구든지 도와줄 수 있나요?
답변1
무엇을 시도해 보셨나요? 특히 .fish
'(\ls)'
그래서
cd (ls -1dt ./*/ | head -n 1)
10초 실험을 기반으로 한 것 같습니다. 편집: \
문자를 제거합니다.
답변2
물고기에서는 를 사용할 수 없으며 $(command)
를 사용해야 합니다 (command)
.추가 정보
또한 물고기에서는 앞의 백슬래시를 다음 ls
으로 바꿔야 합니다.command
요약하면 다음을 사용합니다.
cd (command ls -1dt ./*/ | head -n 1)
답변3
출력에 의존하는 대신 ls
GNU coreutils가 있다고 가정합니다.
cd (stat --printf='%Y:%n\0' ./*/ | sort -zt: -k1nr | head -zn1 | cut -d: -f2-)
답변4
넌 할 수있어
ls -dt ./*/ | read newest && cd $newest
그러나 개행 문자가 포함된 파일 이름에는 작동하지 않습니다.
최신 버전의 GNU를 사용하면 ls
다음과 같이 문제를 해결할 수 있습니다.
ls --zero -dt ./*/ | read -z newest && cd $newest
아니면 이렇게 할 수도 있습니다:
zsh -c 'print -rNC1 ./*(/om[1])' | read -z newest && cd $newest
또는 *(-/om[1])
메소드에서와 같이 디렉토리의 심볼릭 링크(및 해당 대상의 수정 시간)를 고려하십시오 */
.