ls 出力をファイル名の日付で逆順にソート

ls 出力をファイル名の日付で逆順にソート

以下を使用して、「通常の順序」で日付別にソートされた出力を生成できます。

ls -A -lR | grep "^-" | sed "s/.\{43\}/&\n/" | grep -v "^-" | while read ONELINE; do if echo $ONELINE | cut -d " " -f3 | grep -o '[0-9][0-9]:[0-9][0-9]' > /dev/null 2>&1; then echo $ONELINE | sed "s/.\{7\}/&$(date +%Y) /"; else echo $ONELINE; fi; done

結果:

2011年1月23日 10:42 何があったか 2007.12.20.avi
2009年6月26日何か2009.06.25.avi
2010年2月12日何か2010.02.11.avi
2011年1月29日09:17何が起こりましたか2011.01.27.avi
2011年2月11日 20:06 何があったか 2011.02.10.avi
2011年2月27日 23:05 何があったか 2011.02.24.avi

次のように、最新のファイルが一番上にある出力をどのように取得できますか?

2011年2月27日 23:05 何があったか 2011.02.24.avi
2011年2月11日 20:06 何があったか 2011.02.10.avi
2011年1月29日09:17何が起こりましたか2011.01.27.avi
2011年1月23日 10:42 何があったか 2007.12.20.avi
2010年2月12日何か2010.02.11.avi
2009年6月26日何か2009.06.25.avi

ベストアンサー1

ほとんどのシングルマシンにはオプションがlsあります-tman私のDebianボックスページから:

-t 修正時間に基づいてソート

次のコマンドを試してください。

$ ls -lt

おすすめ記事