Bash:最後のコマンドに渡されたアクセス引数

Bash:最後のコマンドに渡されたアクセス引数

私はしばしば次のような状況に直面しています。

mkdir /Some/really/long/path/to/a/directory/
cd /Some/really/long/path/to/a/directory/

私は理想的にはcd /Some/...etc.../a/thenとthenを実行することを知っていますがmkdir directory、私はしばしば最初に実行し、次に作成したのと同じ長いファイルパスの終わりまでmkdir実行する必要があります。cd

することが不足しています...

var="/Some/...etc.../a/"
mkdir $var/directory; cd $var

...もっと悪いことは、渡されたパラメータを再利用する方法があることです。より早い注文する?私は確かにタップを完成させることを知っていますが、同じ名前の一連のネストされたディレクトリではそれが常に役に立つわけではありません。理想的には、$#または同じショートカットを持ちたいです$@

失敗すると、次善策で時間を節約するソリューションも高く評価されます!

答え1

以前の答えでは、$_とを使用することをお勧めします!$。これが動作している間は拡張されず、Enterキーを押してコマンドを実行するまでその値を見ることができないので、非常に危険だと思います。rm $_何を削除するかわからないまま使用すると想像してみてください!

Bashを使用している場合(おそらくデフォルトのemacsモードでreadlinesを使用している場合)をタップして放し、次にタップすることをお勧めESCします.

このショートカットは、最後に実行されたコマンドの最後のパラメータを呼び出します。したがって、文章を書くと、cd <ESC> <.>長いパス/ファイルが提供されます。

ショートカットALT+ .(同時に押す)も同じように機能します。

デフォルトのemacsモードの代わりにbash viモードを使用している場合は、ALT+を使用してこの動作をシミュレートできます.(次の~\.inputrcようにファイルを変更する場合)。

set keymap vi-insert

$if mode=vi
    "\e.": yank-last-arg
$endif

答え2

$_Bash(およびzshなどの他のシェル)では、前のコマンドの最後の引数を含むを使用できます。

mkdir /path/to/file
cd "$_"

答え3

インタラクティブで作業するときは、次の目的で履歴拡張を使用できます。

mkdir /Some/really/long/path/to/a/directory/
cd !$

以前のコマンドまたは履歴の他のコマンドから追加のパラメーターにアクセスできるさまざまなバリエーションがあります。バラよりBash、現在のコマンドの最後に使用された引数の挿入詳細は...

関連情報