「ls」の出力を最終変更日でソートするにはどうすればよいですか?


回答:


1638
ls -t

または(逆の場合、最新の下部):

ls -tr

lsmanページには、より詳細にこれを説明し、その他のオプションを示しています。


312
ls -halt以下のためですhuman readableshow hiddenprint detailssort by date
エフゲニーセルゲイエフ

6
誰かが疑問に思っている場合、POSIX標準に関するセクション-t-r引数の両方が指定されているlsので、Unices全体で互換性がなければなりません。
マークアメリー

5
ls -llt並べ替えと一緒に日付スタンプを示すために
Harshul Pandavを

4
はいそれは可能である
Ashraf.Shk786

6
@EvgeniSergeev ls -halt単純なミスタイプを記憶しないと、サーバーがクラッシュする可能性があります!linux.die.net/man/8/halt
アイザック

148

これを試してくださいls -ltr。リストの最後から最後まで表示されます


これを使用して、Gitリポジトリ内のファイルのリストを最終編集日までに取得しました。ls -alt $(git ls-files -m)ありがとう!
NobleUplift

45

完全な答えは、私が使用するものです: ls -lrth

これをスタートアップスクリプトに入れ、次の/etc/bashrcようなエイリアスを割り当てalias l='ls -lrth'ます。ターミナルを再起動するとl、ファイルの長いリストを入力して表示できるはずです。


14
source /etc/bashrc実行中にレパートリーに追加する場合も呼び出すことができます。
cwallenpoole

1
~/.bash_aliasesユーザー専用に追加することもできます(ファイルがまだ存在しない場合は作成できます
-Dinei

29

私はいつかこれを使用します:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

または

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

過去5分間に変更されたファイルを再帰的に確認します。

...または現在、GNU findの最新バージョンで

find . -type f -mmin -5 -exec ls -ltr {} +

...そして、ファイルに限定しない場合でも:

find . -mmin -5 -exec ls -ltrd {} +

(ディレクトリのコンテンツを表示しない-dように切り替えることに注意してくださいls

より堅牢な方法?

修正日見つけてソートするために私のanserを見てください


再帰的にあなたはそれがサブディレクトリ内のすべてのファイルをリストすることを意味しますが、lsはすでにそれを行うためのスイッチを持っていませんか?
ジグガンジャー

@jiggunjer ls -Rltrはディレクトリでソートし、次に日付find -type f -mmin -5 -exec ls -ltr {} +でソートします。ディレクトリツリーに関係なく、最後の5分間に変更されたファイルを日付でソートして出力します。
F.ハウリ16

ファイルのリストが長すぎて1つのシェル呼び出しとしてlsunix.stackexchange.com/a/118200/27186)に渡せない場合、これは機能しないことに注意してください。ソートされたファイルの束など。ただし、リスト全体はソートされません。findを使用して長いリストをソートするには、superuser.com / questions / 294161 /…を参照してください。
アンハンマー

これは安全に作業するためにあなたは、正しい@unhammer、参照変更日付でのUnix / Linuxのに私の最近のANSERを見つけると並べ替え
F. HAURI


15

ニモニック

で始まるエントリを無視しないで、日付.並べ替えます(最新のものが最初)。

ls -at

始まるエントリを無視していないため.日付でソート逆(古い順):

ls -art

で始まるエントリを無視しない.ために、長いリスト形式を使用し、日付ソートします(最新のものが最初)。

ls -alt

人間が読めるサイズの印刷では.、で始まるエントリを無視しないでください。長いリスト形式を使用し、日付並べ替えます(新しいものが最初)(@EvgeniSergeev note):

ls -halt

しかし、最後の1に注意して、単純なミスタイプがサーバークラッシュ...(@Isaacノート)を引き起こす可能性があるので、


14

最大3 * 24時間(3日)前までに変更されたファイルシステム上のすべてのファイルを検索します。

find / -ctime 3

10

日付順に並べられた最新の10個を表示するには、次のようなものを使用します。

ls -t ~/Downloads | head -10

または最古を表示する

ls -tr ~/Downloads | tail -10

それはGIV ls -t head -2ls -tr | tail -2同じ結果が得られ、(-t / -tr)オプションは、固定されたままとテール/ヘッドまたはその逆に変更する必要があり、・修正の両方何もmodyfingないようなものです
DDS

7

非常に基本的なUnixコマンドのみを使用する:

ls -nl | sort -k 8,8n -k 6,6M

これはLinuxで機能しました。列8は「n」(数値)、列6は「M」、月です。

私はが初めてなsortので、この答えはおそらく改善されるでしょう。ではないに言及し、それがに追加のオプションを必要とlsし、sort正確なタイムスタンプを使用することではなく、誰もがこれを必要とします。


5
私はそれがLSの出力を解析するので、あなたの答えは、アップ票いずれかを得ていなかった疑いがある-を参照してそうすることに対する標準的な引数LSを解析しないことについて、この質問を
町の名を冠した
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.