web-dev-qa-db-ja.com

履歴コマンド!#は何をしますか?

historyのマニュアルページから:

イベント指定子イベント指定子は、履歴リストのコマンドラインエントリへの参照です。参照が絶対的でない限り、イベントは履歴リストの現在の位置に関連しています。

   !      Start a history substitution, except when followed by  a  blank,
          newline, = or (.
   !n     Refer to command line n.
   !-n    Refer to the current command minus n.
   !!     Refer to the previous command.  This is a synonym for `!-1'.
   !string
          Refer  to the most recent command preceding the current position
          in the history list starting with string.
   !?string[?]
          Refer to the most recent command preceding the current  position
          in  the  history  list containing string.  The trailing ? may be
          omitted if string is followed immediately by a newline.
   ^string1^string2^
          Quick substitution.  Repeat the last command, replacing  string1
          with string2.  Equivalent to ``!!:s/string1/string2/'' (see Mod‐
          ifiers below).
   !#     The entire command line typed so far.

他のすべては理にかなっていますが、コンテキストから!#の使用法を理解することはできません。それは何をし、通常どのように使用されますか?

4
user1717828

ここで答えてください: シェルコマンドで!#:3はどういう意味ですか

基本的に、これを使用してコマンドを「:n」と組み合わせて短縮できます。

$ cd /home/me/some/super/deep/dir/that/i/do/not/want/to/type/again ; ll !#:2 

もちろん、これは少しばかげた例です。llを実行するだけでよいのですが、アイデアが浮かんだら、shスクリプトで使用できます。

1
crajun