そのための組み込み関数はありませんが、シェル機能を使用すると、cd実行後にコマンドの引数を再度入力する必要がなくなりますmkdir。
- を入力して
cd からEsc .(またはAlt+ .)、前のコマンドの最後の引数を挿入します。
cd !$cd前のコマンドの最後の引数で実行されます。
- を押しUpて前のコマンドラインを呼び出し、編集してに変更
mkdirしcdます。
で簡単なディレクトリの作成と変更の関数を定義できます~/.bashrc:
mkcd () { mkdir "$1" && cd "$1"; }
.bashrc(. ~/.bashrc)をリロードするか、bashを再起動すると、を入力できますmkcd new-directory。
この単純なバージョンは、奇妙なディレクトリ名や..シンボリックリンクを含むいくつかの異常なケースで失敗します。ここにあるものがあります。説明については、この質問のUnixおよびLinuxバージョンを参照してください。
mkcd () {
case "$1" in
/*) mkdir -p "$1" && cd "$1";;
*/../*) (cd "./${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd "$1";;
../*) (cd .. && mkdir -p "${1#.}") && cd "$1";;
*) mkdir -p "./$1" && cd "./$1";;
esac
}
mkdir "NewDir" && cd "$_"mkdir "NewDir" && cd "NewDir"オートコンプリートが機能しないため、機能しません。ところで「$ _」とは何ですか?