dir/に移動するために `cd dir/filename`をどのように取得しますか?

dir/に移動するために `cd dir/filename`をどのように取得しますか?

私はこれができることがわかりましたcd文書議論。

cd myDirectory/anyname.anyExtension と同等だろう cd myDirectory/

この動作を実装するのに最適なエイリアスや関数は何ですか?

編集する:申し訳ありませんが、最初は言及しませんでした:私は使用します。zsh

ベストアンサー1

ディレクトリを入力してbash

cd() {
    local file="${!#}"

    if (( "$#" )) && ! [[ -d "$file" ]]; then
        builtin cd "${@:1:($#-1)}" "${file%/*}"
    else
        builtin cd "$@"
    fi
}

CDのオプション(など)を絶対に使用しない場合は、-P次のように十分です。

cd() { 
    if [ -d "$1" ] || [ -z "$1" ]; then
        builtin cd "$@"
    else
        builtin cd "${1%/*}"
    fi
}

おすすめ記事