Bash
laravel
コマンドライン

ディレクトリにある最新のファイルをtail -fしたい

$ ls -t | head -n 1 | xargs tail -f
コマンド 説明
ls -tr ファイル一覧を日付昇順(新しいものから順に)取得
head -n 1 先頭行を1つだけ(最新のファイル名を取得)
xargs tail -f そのファイルをtail -fする

何がしたいか

ログの種類によってはファイル名に日付が付くことがあり、そこから最新のファイル名を確認してtail -fするのが大変だったりします。
image.png

特に運用が始まってファイルが増えてくると大変です。

このコマンドをエイリアス掛けておくと便利です。

$ alias lt='ls -t | head -n 1 | xargs tail -f'

でも

headしたときにディレクトリがヒットしてしまう可能性や、xargsに変なものが渡ったりしそうなので、findなどでアレンジしたほうが良いかも。