BLOGTIMES
2009/01/20

シェルスクリプトで最新のファイル名を取得する

  cli  sh 
このエントリーをはてなブックマークに追加

あるパターンにマッチするファイルのうち、最新のものを一つをフルパスで取得して処理をするというシェルスクリプトを作る必要があったのですが、予想外に時間がかかってしまったので、忘れないようにメモ。

LATEST_FILE="`pwd`/`ls -lt *.txt | head -n 1 | gawk '{print $9}'`"

lsの引数にタイムスタンプでソートする-tというオプションがあることは知りませんでした。

実行例

たとえばログフォルダで最新のアクセスログを探すとこんな感じで取得できます。

# ls -l *access_log -rw-r--r-- 1 root apache 192389496 12月 7 23:59 20081248access_log -rw-r--r-- 1 root apache 184808167 12月 14 23:59 20081249access_log -rw-r--r-- 1 root apache 175875145 12月 21 23:59 20081250access_log -rw-r--r-- 1 root apache 181980596 12月 28 23:59 20081251access_log -rw-r--r-- 1 root apache 150492697 1月 4 23:59 20081252access_log # LATEST_FILE="`pwd`/`ls -lt *access_log | head -n 1 | gawk '{print $9}'`" # echo $LATEST_FILE /opt/apache/logs/200812/20081252access_log

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2889
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン