たとえば、 に cd した/usr/local/bin
が、パスワードを に変更したい場合、zsh でそれを実行するにはどうすればよいでしょうか。から のように実行してパスワードを に変更できる/usr/bin
ことはわかっていますが、希望どおりに実行する方法がよくわかりません。cd /a/b/
cd b c
/a/b
答え1
zsh の の柔軟な機能を考えるとcd
、希望どおりのことをするには少なくとも 3 つの方法があります。 またはcd /usr/local /usr
またはcd local /
のいずれかを記述できますcd local/bin bin
。おそらく、もっと多くの解決策が考えられます。
cd
zsh での の構文は です。このコマンドはを にcd OLD NEW
一致させ、一致する部分を に置き換えます。 は現在のディレクトリを基準に動作することを覚えておいてください。そのため、にいるときにと書き込むと、 のようなディレクトリは存在しないため、zsh はエラーを返します。スラッシュには常に注意してください。$PWD
OLD
NEW
cd
cd /usr/local usr
/usr/local/bin
/usr/local/bin/usr/bin
答え2
あなたは2引数形式のcd
現在の作業ディレクトリの部分文字列を置き換える。例えば、 を削除するには/local
、次のようにする。
cd /local ''
複数のスラッシュがあっても違いはないので、これをcd /local /
(結果は となり/usr//bin
、二重のスラッシュは単一のスラッシュに簡略化されます) またはcd local /
(やはり となります/usr//bin
) と書くこともできます。
別の方法としては、コマンドライン版を使う方法があります。デフォルト設定では、cd $PWD
コマンドラインに と入力し、 を押しますTab。変数の置換は変数の値に置き換えられ、自由に編集できます。 ではsetopt auto_cd
、最初に と入力する必要はありませんcd
。設定により変数が展開されない場合は、ではなく、Tabzle 関数を呼び出すキーを使用してください。expand-or-complete
complete-word