• ベストアンサー

Unix Shell 最新更新日時のファイルパス

例えば以下のディレクトリに次のようなデータがあるとします。 /home/work/test ・INV_20110401000001.csv ・INV_20110401000002.csv ・INV_20110401000003.csv これらのファイルの中から最新の更新日時のファイルのパスを取得したいのですが、 良い方法が思いつきません。 末尾の数字が大きいものが最新ファイルとは限らず、 ファイルがいくつあるかも日によってかわります。 testコマンドでは比較ファイルを2つまでしか指定できず困っています。 どなたかご存知の方がいれば教えていただきたいです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pakuti
  • ベストアンサー率50% (317/631)
回答No.2

ls -lrt |tail -n 1|awk '{print $9}' がぱっと思いついた方法でした リバースをせずにheadで良いか・・・ (

anman0201
質問者

お礼

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

その他の回答 (2)

回答No.3

>そこからどうやってパスを取得するのでしょうか? プログラム書いてるんでしょうからいろいろ考えましょうよ・・・ 最新のファイル名を取得するならこれが一番簡単かな。 ls -1t | head -n1 ※「ls -」の次は小文字のエルではありません。数字の1です。ご注意。

anman0201
質問者

お礼

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

回答No.1

ls -lt で更新日順に表示させれば取得できませんか。

anman0201
質問者

お礼

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

関連するQ&A