applyスゲエ

id:otsuneさんに教えて貰ったapplyが熱い。
BSD系のOS用ぽいので、サーバ上(Linux系)じゃ使えなかったですが
MacのOSXだといけました。
shに流し込まずに色々コマンドが実行できるんですね。


ls の結果をxargsで渡してあげるとapplyでいろんなことができる!
ls | xargs apply "du -s" とすると

16      README
8       Rakefile
56      app
0       components
56      config
8       db
8       doc
0       lib
0       log
440     public
104     script
32      test
0       tmp
0       vendor

とかで、ディレクトリの一覧とその合計容量が出せましたよ。


-dを渡してあげると実行内容が出るようなので
ls | xargs apply -d "du -s"
で見てみると

exec du -s README
exec du -s Rakefile
exec du -s app
exec du -s components
exec du -s config
exec du -s db
exec du -s doc
exec du -s lib
exec du -s log
exec du -s public
exec du -s script
exec du -s test
exec du -s tmp
exec du -s vendor

となってた。


ls | awk '{print "du -s "$1}' | sh
と同じような意味ですね。
applyの方が末尾にコマンドがある分、履歴を検索して末尾から弄れるので嬉しい。*1

*1:Mac OSXの最大不満点はrm dirとやった後ディレクトリだよーんって怒られて上を押して履歴を復活した後、" -fr"と記述するだけでいいLinuxと違ってrm -fr dirってしなきゃならないのが面倒と感じる自分。rm dir -fr も受け入れてくれても良いのに……。