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

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

이 기사와 관련하여,가장 최근에 수정된 하위 디렉터리로 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

출력에 의존하는 대신 lsGNU 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])메소드에서와 같이 디렉토리의 심볼릭 링크(및 해당 대상의 수정 시간)를 고려하십시오 */.

관련 정보