디렉토리가 $HOME의 하위 디렉토리인 경우에만 디렉토리에 CD를 넣으면 디렉토리의 내용이 자동으로 나열됩니다.

디렉토리가 $HOME의 하위 디렉토리인 경우에만 디렉토리에 CD를 넣으면 디렉토리의 내용이 자동으로 나열됩니다.

Reddit 스레드에서 .bashrc입력한 디렉터리를 자동으로 표시하는 콘텐츠 목록에 추가할 수 있는 다음 짧은 조각을 찾았습니다.cd

cd() {
    builtin cd "$@" && ls
}

이것은 훌륭하지만 cd내가 있는 폴더가 $HOME.

답변1

ls다음 명령은 현재 디렉터리(변경 성공 후)가 사용자의 홈 디렉터리이거나 그 하위 디렉터리인 경우에만 실행됩니다.

cd () {
    builtin cd "$@" || return

    case $PWD in
        "$HOME"|"$HOME"/*) ls
    esac
}

또는 다음 에서 a [ ... ]및 테스트를 사용하십시오 .[[ ... ]]bash

cd () {
    builtin cd "$@" || return

    if [ "$PWD" = "$HOME" ] || [[ $PWD == "$HOME"/* ]]; then
        ls
    fi
}

또는 확장된 글로빙 모드를 사용하세요 bash.

cd () {
    builtin cd "$@" || return

    if [[ $PWD == @("$HOME"|"$HOME"/*) ]]; then
        ls
    fi
}

관련 정보