cd 및 ls를 사용하여 디렉토리(열 및 항목 선택)로 이동하는 방법은 무엇입니까?

cd 및 ls를 사용하여 디렉토리(열 및 항목 선택)로 이동하는 방법은 무엇입니까?

cd와 ls를 사용하여 디렉토리를 다음으로 변경하고 싶습니다 Typescript-initial-config-with-eslint/.

package.json  README.md  tsconfig.json  Typescript-initial-config-with-eslint/
public/       **src/**       tslint.json    yarn.lock

좋다:

cd ls | (4° item)

이를 수행하는 더 효율적인 방법이 있습니까?

답변1

선택 루프를 사용할 수 있다고 생각합니다.

select dir in *; do cd -- "$dir"; break; done

그러나 실제로는 cd일반적인 사용보다 더 많은 입력이 필요하지만 이를 사용하여 함수를 만들 수 있습니다.

cdls () {
    local PS3='cdls>'
    select dir in *; do
        if [[ -d "$dir" ]]; then
            cd -- "$dir"
            break
        else
            printf '%s\n' "You can only cd into a directory" >&2
        fi
    done
}

디렉터리가 아닌 파일을 먼저 표시하는 것도 그다지 유용하지 않습니다. 해당 cd파일에 들어갈 수 없기 때문에 다음과 같이 할 수 있습니다.

cdls () {
    local PS3='cdls>'
    select dir in */; do
            cd -- "$dir"
            break
    done
}

답변2

cd" 목록의 네 번째 항목에 어떻게 접근 하나요 ls?" 라고 묻는다면 ,

cd "$(ls | tail -n +6 | head -n 1)"

관련 정보