最新のファイルを一つxargsに渡す小ネタ

たかはらです。

先日、hnwいまさらxargsの便利さを主張してみるの記事を投稿したところ予想外の大反響でした。xargs好きが意外といると判明したので今日はxargsを利用した小ネタをご紹介します。

例えばネットでソースパッケージを拾ってきてコンパイルする時に、以下のような事をやっていませんか?

  1. ブラウザでファイルをクリックすると保存するか聞かれるので~/Downloadに置く。
  2. ターミナルを開いて、cd ~/Download
  3. tar xvzfと打ったところで
  4. ファイルがたくさんありすぎるのでシェルの補完で探そうとするが数秒前に見たファイル名を覚えだせず焦る。
  5. 舌打ちをしながらブラウザに戻りファイル名を確認する。
  6. 「ああ、そうだったよね」と思いながらシェルに戻ってファイル名を補完する…

そんな貴方に以下のようなスクリプトをご紹介します。

#/bin/sh
ls -t -w |head -n 1|xargs $*

(追記: 2008/3/7 コメント欄のご指摘により修正しました)

たった2行のスクリプトですがこのスクリプトをrecentなどの名前を付けてパスの通ったディレクトリに保存します。このスクリプトはその名の通り、フォルダの中で最も新しいファイルをxargsに渡すスクリプトです。以下のようにして使います。

recent tar xvzf

上記の例だとこんな感じになりますね。

  1. ブラウザでファイルをクリックすると保存するか聞かれるので~/Downloadに置く。
  2. ターミナルを開いて、cd ~/Download
  3. recent tar xvzf
  4. Happy Hacking.

Have a fun!

コメント / トラックバック 2 件

#1 えーまっくす 2009/02/27 11:43

>例えばネットでソースパッケージを拾ってきてコンパイルする時に、以下のような事を
>やっていませんか?

すっごいやってます。なのでこれはとてもありがたいです。でも、

> ls -t -w 1|head -n 1|xargs $*

ってはじめの1っていります?
そのままだと動きませんでした。

ls -t -w |head -n 1|xargs $*

#2 tumf 2009/03/07 17:22

えーまっくすさん:
その通りです、ご指摘ありがとうございます修正をさせていただきます。

コメントする