プロが教える店舗&オフィスのセキュリティ対策術

例えば以下のディレクトリに次のようなデータがあるとします。
/home/work/test

・INV_20110401000001.csv
・INV_20110401000002.csv
・INV_20110401000003.csv

これらのファイルの中から最新の更新日時のファイルのパスを取得したいのですが、
良い方法が思いつきません。
末尾の数字が大きいものが最新ファイルとは限らず、
ファイルがいくつあるかも日によってかわります。

testコマンドでは比較ファイルを2つまでしか指定できず困っています。
どなたかご存知の方がいれば教えていただきたいです。
よろしくお願いいたします。

A 回答 (3件)

ls -lt


で更新日順に表示させれば取得できませんか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
そこからどうやってパスを取得するのでしょうか?

お礼日時:2011/04/12 17:10

ls -lrt |tail -n 1|awk '{print $9}'



がぱっと思いついた方法でした
リバースをせずにheadで良いか・・・
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
教えていただいた方法で希望通りの結果を得ることができました。
たびたび申し訳ないのですが、たとえばこのファイルの中に複数のファイル名が
存在した場合、ファイル名'INV'が含まれるファイルの最新ファイルを取得することは可能でしょうか?

お礼日時:2011/04/12 18:21

>そこからどうやってパスを取得するのでしょうか?



プログラム書いてるんでしょうからいろいろ考えましょうよ・・・

最新のファイル名を取得するならこれが一番簡単かな。
ls -1t | head -n1

※「ls -」の次は小文字のエルではありません。数字の1です。ご注意。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Shell初心者なものでただいま勉強中です...
頂いた意見大変参考になりました。

お礼日時:2011/04/12 19:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!