어떤 명령을 사용하여 다음을 수행할 수 있습니까?
- 현재 디렉토리에 마지막으로 수정된 디렉토리를 입력하세요.
- 디렉터리가 존재하지 않거나 입력할 수 없는 경우 아무 작업도 수행되지 않습니다.
ca
적어도 and, 가능하다면 and zsh
에서도 작동하는 별칭을 찾고 있습니다 .bash
ash
답변1
가능한 해결책은 다음과 같습니다.
alias ca='cd $(find . -maxdepth 1 -type d -printf "%T@ %p\n" | sort -n | tail -1 | cut -d" " -f2-)'
그러나 다음과 같은 문제가 있습니다.
find
이와 같은 것을 사용하지 않고 직접 출력을 사용하면print0
이름에 공백이 있는 디렉터리가 올바르게 처리되지 않습니다.- 이것이 마지막으로 수정된 디렉토리인 경우
.
를 입력하십시오.
.
답변2
내가 아는 한 이것은 작동해야 합니다( 별칭은 아니지만 zsh
).bash
ca() {
local dir newer
for dir in ./*; do
if [[ ! -d "${dir}" ]]; then
continue
fi
if [[ "${dir}" -nt "${newer}" ]]; then
newer="${dir}"
fi
done
if [[ -x "${newer}" ]]; then
cd -- "${newer}"
fi
}