Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

よく分からないコマンド(エクスクラメーション + アスタリスク)

http://www.rpm.org/max-rpm/s1-preface-parts.html には

ls -FAl !*|less

というコマンドがあって、「このコマンドが分からない人でも安心!」みたいに書いてあるんだけど、どういう理屈で動いてんのか分かりませんよ俺。 "!*" ってナニ !?
……実験してみたら、 "!*" は「直前のコマンドの引数全て」に展開されるみたい。例えば

$ cat hoge.txt
$ ls -FAl !* | less

とすると、 2 番目のコマンドは

$ ls -FAl hoge.txt | less

に展開されるわけね。何じゃこりゃ。