2017年2月11日

直前のコマンドの引数を再利用するには?

lsコマンドで確認してからchmodコマンドを実行するときなど、同じ引数を連続して入力することがあります。

$ ls -l data/tmp/batch/01/sample.log
-rw-r--r-- 1 north north 0  2月 11 22:30 data/tmp/batch/01/sample.log
$ chmod 600 data/tmp/batch/01/sample.log

同じ引数をもう一度入力したくはないものです。そんなときは[Esc]+[.]と入力すると、直前のコマンドラインの引数がカーソル位置に挿入されます。あるいは、直前の引数が格納されている変数「$_」を使ってもよいでしょう。

$ ls -l data/tmp/batch/01/sample.log
-rw-r--r-- 1 north north 0  2月 11 22:30 data/tmp/batch/01/sample.log
north@WIN10:~$ chmod 600 $_

「!#」を使う方が一般的かもしれません。こちらは実行されるコマンドが表示されます。

$ ls -l data/tmp/batch/01/sample.log
-rw-r--r-- 1 north north 0  2月 11 22:30 data/tmp/batch/01/sample.log
$ chmod 600 !$
chmod 600 data/tmp/batch/01/sample.log

コマンドを置き換える方法もあります。引数はそのままに、コマンドを置き換えて直前のコマンドラインを実行したい場合は、以下の書式を使って文字列1を文字列2に置換しましょう。

【書式】^文字列1^文字列2

次の例では、「ls -l」を「chmod 600」に置き換えて実行しています。

$ ls -l data/tmp/batch/01/sample.log
-rw-r--r-- 1 north north 0  2月 11 22:30 data/tmp/batch/01/sample.log
$ ^ls -l^chmod 600
chmod 600 data/tmp/batch/01/sample.log


0 件のコメント:

コメントを投稿