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
}

おすすめ記事