- ベストアンサー
Unix Shell 最新更新日時のファイルパス
例えば以下のディレクトリに次のようなデータがあるとします。 /home/work/test ・INV_20110401000001.csv ・INV_20110401000002.csv ・INV_20110401000003.csv これらのファイルの中から最新の更新日時のファイルのパスを取得したいのですが、 良い方法が思いつきません。 末尾の数字が大きいものが最新ファイルとは限らず、 ファイルがいくつあるかも日によってかわります。 testコマンドでは比較ファイルを2つまでしか指定できず困っています。 どなたかご存知の方がいれば教えていただきたいです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ls -lrt |tail -n 1|awk '{print $9}' がぱっと思いついた方法でした リバースをせずにheadで良いか・・・ (
その他の回答 (2)
- lowrider_2005
- ベストアンサー率40% (1520/3748)
回答No.3
>そこからどうやってパスを取得するのでしょうか? プログラム書いてるんでしょうからいろいろ考えましょうよ・・・ 最新のファイル名を取得するならこれが一番簡単かな。 ls -1t | head -n1 ※「ls -」の次は小文字のエルではありません。数字の1です。ご注意。
質問者
お礼
ご回答ありがとうございます。 Shell初心者なものでただいま勉強中です... 頂いた意見大変参考になりました。
- lowrider_2005
- ベストアンサー率40% (1520/3748)
回答No.1
ls -lt で更新日順に表示させれば取得できませんか。
質問者
お礼
ご回答ありがとうございます。 そこからどうやってパスを取得するのでしょうか?
お礼
ご回答ありがとうございます。 教えていただいた方法で希望通りの結果を得ることができました。 たびたび申し訳ないのですが、たとえばこのファイルの中に複数のファイル名が 存在した場合、ファイル名'INV'が含まれるファイルの最新ファイルを取得することは可能でしょうか?