ファイルの先頭にコマンドの出力結果を追加するには

ファイルの先頭に別のコマンド出力を追加

/tmp/foo

foo1
foo2
foo3

/tmp/bar

bar1
bar2
bar3

こういうファイルをくっつけるときは

cat foo bar

とするとできますが,コマンドの出力結果を貼り付けたい場合はどうしましょう?
別のファイルに書けばできますが,もっと短く書きたいですよね.
そこで,

ls -l | tac | xargs -I% sed -i 1i\ % foo

とかすると,

total 8
-rw-r--r-- 1 penguin penguin 15 Jul 24 07:08 bar
-rw-r--r-- 1 penguin penguin 15 Jul 24 06:39 foo
foo1
foo2
foo3

みたいに,コマンドの出力結果をfooの先頭に書くことができます.

解説とか

tacコマンドはcatの出力を逆順にするコマンドです.

a_command | xargs -I% another_command % arg2 arg3

みたいにすると,a_commandの出力結果がxargsに渡されますが,
その値が%に入って,変数のように扱うことができます.
すると,another_commandに渡す複数の引数の第一引数とかとして渡すことができます.