- Published on
Bashのfindコマンドで更新日時の一番新しいファイルを出力
- Authors
- Name
- Shou Arisaka / 有坂翔
LinuxのBashコマンドラインのfindコマンドで更新日時の一番新しいファイルをフィルタして出力する方法について紹介します。
lsでやろうとしたんだけど、
ls -Rtald "/mnt/c/Users/user/OneDrive/ドキュメント/ShareX/Screenshots/" | head -n 11
なんか複雑になったし、ていうかできなかった。
findならできる。
find "/path" -printf '%T+ %p\n' | sort -r | head -n 1
2018-09-02+04:24:51.0869511000 /mnt/c/Users/user/OneDrive/ドキュメント/ShareX/Screenshots/2018-09/ShareX_ScreenShot_b3e5c560-30ec-48b2-9d1f-b943a0d5e9bb.png
これだと日付が出力されてしまうので、
find "/path" -printf '%T+ %p\n' | sort -r | head -n 1 | sed -Ee "s/^.*(\/mnt.*\.(jpg|png))/\1/g")
こんな感じで、出力を変えてやります。