• ベストアンサー

最終更新日のファイルの検索方法

OSはSolaris10を利用しています。 表題通り、あるディレクトリ内の最終更新日のファイルを探すコマンドを探しております。 Ex) date 2009/03/17 pwd /var/tmp 3月13日 20090313_aaa.txt 3月12日 20090312_aaa.txt 3月11日 20090311_aaa.txt 上記の場合、"20090313_aaa.txt"のファイルを指定したい。 ※すべてファイル名には作成日が付くので、ファイル名で最新の日付を探しても良いです。 利用目的としては、最終更新のファイルと別に保存しているファイルと DIFFをとりたいと思ってます。 find -mtime も考えたのですが、毎日バックアップを取っているわけではないので、自分には応用が利きませんでした。 何か良い方法がありましたらぜひアドバイスをお願いします。

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

  • ベストアンサー
  • 3899
  • ベストアンサー率54% (65/119)
回答No.1

# ls -lt じゃダメですか? (新しい順に出ますが)

ninnin1115
質問者

補足

回答有難うございます。 私も今そこまでは、分かりました。 ホントに無知で申し訳ありませんが、lsで表示した内容の先頭だけ 表示させるコマンドってありますでしょうか?

その他の回答 (3)

noname#227025
noname#227025
回答No.4

>lsで表示した内容の先頭だけ >表示させるコマンドってありますでしょうか? ls の出力をパイプで head コマンドにくわせればよいのでは? % ls -t1 | head -1 とか。

ninnin1115
質問者

お礼

有難うございます。 なんとか解決できました。 皆様アドバイス本当に有難うございます。

回答No.3

ご要望のコマンド(オプション)は知りませんが、全体としてスクリプトを組まれるのでしょうからその中で要素を取り出せばいいのではないですか? たとえばperlであれば、 $list = `ls -t /var/tmp/*.aaa.txt`; $list =~ s/\n.*//g; print "$list\n"; とか。 (思いつきで書いてますので、実際に動く保証はありません)

  • 3899
  • ベストアンサー率54% (65/119)
回答No.2

回答になっていませんが > lsで表示した内容の先頭だけ表示させるコマンド 文章の理解力が無くてすみません lsの結果、例えばfile1、file2、test1があった場合は「f」と「f」と「t」が欲しいの? これは当初の質問内容と異なるので違うかな lsの実行結果から先頭文字だけ切り出すシェルでいけそうな気がする… コマンドでドンって表示は難しい気がします。 ls -ltの結果で一番新しいファイルだけ表示させたいってことですか? 例えば「file1」だけ表示させる。 |moreを付けて1画面で表示させるか ls -ltrで順序を逆にして一番下を見るか… これくらいしかわかりません。