たかはらです。
先日、hnwがいまさらxargsの便利さを主張してみるの記事を投稿したところ予想外の大反響でした。xargs好きが意外といると判明したので今日はxargsを利用した小ネタをご紹介します。
例えばネットでソースパッケージを拾ってきてコンパイルする時に、以下のような事をやっていませんか?
- ブラウザでファイルをクリックすると保存するか聞かれるので
~/Downloadに置く。 - ターミナルを開いて、
cd ~/Download tar xvzfと打ったところで- ファイルがたくさんありすぎるのでシェルの補完で探そうとするが数秒前に見たファイル名を覚えだせず焦る。
- 舌打ちをしながらブラウザに戻りファイル名を確認する。
- 「ああ、そうだったよね」と思いながらシェルに戻ってファイル名を補完する…
そんな貴方に以下のようなスクリプトをご紹介します。
#/bin/sh ls -t -w |head -n 1|xargs $*
(追記: 2008/3/7 コメント欄のご指摘により修正しました)
たった2行のスクリプトですがこのスクリプトをrecentなどの名前を付けてパスの通ったディレクトリに保存します。このスクリプトはその名の通り、フォルダの中で最も新しいファイルをxargsに渡すスクリプトです。以下のようにして使います。
recent tar xvzf上記の例だとこんな感じになりますね。
- ブラウザでファイルをクリックすると保存するか聞かれるので
~/Downloadに置く。 - ターミナルを開いて、
cd ~/Download recent tar xvzf…- Happy Hacking.
Have a fun!

コメント / トラックバック 2 件
>例えばネットでソースパッケージを拾ってきてコンパイルする時に、以下のような事を
>やっていませんか?
すっごいやってます。なのでこれはとてもありがたいです。でも、
> ls -t -w 1|head -n 1|xargs $*
ってはじめの1っていります?
そのままだと動きませんでした。
ls -t -w |head -n 1|xargs $*
えーまっくすさん:
その通りです、ご指摘ありがとうございます修正をさせていただきます。
コメントする