별칭은 평가 결과의 변수를 허용합니다.

별칭은 평가 결과의 변수를 허용합니다.

최근에 생성된 디렉터리로 CD를 이동할 수 있도록 별칭을 정의하려고 하며 .bashrc에서 다음을 사용하고 있습니다.

alias cdlatest="latestdir=$(ls -td -- */|head -n 1); cd $latestdir"

하지만 이 별칭은 한 번만 사용할 수 있습니다. 새 디렉토리로 변경해도 여전히 마지막 디렉토리로 CD를 시도합니다. 변수가 $(ls -td -- */|head -n 1)처음부터 한 번만 평가되기 때문인 것 같습니다 . 이 문제를 어떻게 해결하나요?

답변1

별칭 정의 주위의 큰따옴표를 작은따옴표로 변경하면 됩니다.

alias cdlatest='latestdir=$(ls -td -- */|head -n 1); cd $latestdir'

그러나 몇 가지 간소화를 권장합니다.

alias cdlatest='cd "$(\ls -td -- */|head -n 1)"'

중간 변수 "$latestdir"을 제거하고 $(...) 명령 평가 결과를 참조하고 별칭이 없는 ls 형식을 사용합니다.

하지만 이름에 개행 문자가 포함된 파일은 처리되지 않는다는 점을 기억해야 합니다.

관련 정보