私は現在引くLinuxの機能を上回り、history
それに!
基づいて構築されました。bash
私は!!
同じ関数を使用することに慣れています!:<argc>
が、たとえば、間違ったパラメータを以前に追加して間違えた場合は、その間違ったパラメータを削除してコマンドラインを再利用する方法はありますか?
はい
次のエラーが発生した場合:
mv -r movableFolder/ targetFolder/
-r
オプションがないので、いくつかのトリックを使ってそれを削除したいとmv
思います。!
mv movableFolder/ targetFolder/
上記の履歴コマンドで次のことができることがわかります。
mv !:2 !:3
しかし、代わりにコマンドをmv
使用する方法はありますか?!
答え1
これにより、次の例に示すように、パラメータ2と3の使用を簡素化できます。
$ echo -r movableFolder/ targetFolder/
-r movableFolder/ targetFolder/
$ echo !:2*
movableFolder/ targetFolder/
すべてはman bashに文書化されています:
単語の表示 単語の表示は、イベントで目的の単語を選択するために使用されます。 A:イベント仕様を単語指定子から分離してください。 ^、$、*、-、%で始まる単語の表示は省略できます。単語は行の先頭から番号が付けられ、最初の単語は0(ゼロ)で表されます。単語は単一のスペースで区切られ、現在の行に挿入されます。
0 (zero) The zeroth word. For the shell, this is the command word. n The nth word. ^ The first argument. That is, word 1. $ The last word. This is usually the last argument, but will expand to the zeroth word if there is only one word in the line. % The word matched by the most recent `?string?' search. x-y A range of words; `-y' abbreviates `0-y'. * All of the words but the zeroth. This is a synonym for `1-$'. It is not an error to use * if there is just one word in the event; the empty string is returned in that case. x* Abbreviates x-$. x- Abbreviates x-$ like x*, but omits the last word.
イベントを指定せずにワード指定子が指定された場合、前のコマンドがイベントとして使用されます。
したがって、この行を使用した後:
$ echo -r movableFolder/ targetFolder/
echo -r movableFolder/ targetFolder/
これは働きます:
$ !:0 !:2*
movableFolder/ targetFolder/
これ:
$ !:0 !:2-$
movableFolder/ targetFolder/
答え2
ハハ、誰かがまだこの古代の機能に関心を持っていて幸いですね。私はまだそれを使用していますが、ほとんどの場合、過去のコマンドを覚えるために上矢印を使用します。
25年前、\!
私の能力の1つPS1
は過去の注文の番号を付けてこのように覚えることでした!54
。もう役に立たないと決めたのはいつなのか覚えていません。今は主に!!
、、、!-2
を定期的に使用しますがその程度です。!-3
!$
!$:h
とにかく、あなたは2つの異なることについて尋ねるようです。
前のコマンドを修正します。
$ mv -r from to $ !!:s/-r// mv from to
!:s/-r//
!!:s/-r//
。修飾子の代わりに最初のs/<string>/<replacement>/
項目を置き換えることができます。<string>
<replacement>
アドレスコマンド名
$ mv from to $ echo !:0 mv