最新のファイルを表示するコマンド

最近~/Downloads以下にある最新のファイルをcpしたりmvすることがよくあって、mv ~/Downloads/{ファイル名} . とかしてたんですが、ファイル名なんだっけ?と思うことがよくありました。で、

$ ls -t ~/Downloads | head -n 1

すれば~/Downloads以下の中の最新のファイルが表示されるので、 mv `ls -t ~/Downloads | head -n 1` . とやればいいんじゃ?と思ったんですが、lsはファイル名しか表示しないので、パスがないため上手く実行できません。しょうがないので適当にzshの関数作りました。

$ latest ~/Downloads

で~/Downloadsの最新のファイルが表示されます。一応 -n で表示する数が指定できます。ということで、これを使えば

$ mv `latest -n 2 ~/Downloads` /tmp

みたいな感じで使えます。
ただ実は一つ問題があって、ファイル名にスペースが含まれてるとだめです。どうすればいいんだろう…。まぁファイル名に空白いれる方が悪いってことで^^;



(2012/1/25 追記)
久しぶりに見直してみたらスペースが使えないのはあまりにもひどい…ってことでpythonで書き直しました.

%  python latest.py -n 5 -0 ~/foo | xargs -0 -J% cp % /tmp

みたいな感じで使えます.