web-dev-qa-db-ja.com

ディレクトリ内の最後に変更された5つのファイルをどのように一覧表示(ls)できますか?

私はls -tがすべてのファイルを修正された時間でリストすることを知っています。しかし、どうすればこれらの結果を最後のnファイルだけに制限できますか?

107
Ryan

頭か尾を使ってみてください。最近変更された5つのファイルが必要な場合

ls -1t | head -5

-1(これは1つです)は1行に1つのファイルを言い、頭は最初の5つのエントリーを取ると言います。

最後の5回を試したい場合

ls -1t | tail -5
198
Paul Rubel

tailコマンドを使用します。

ls -t | tail -n 5
12
Alex

受け入れられた答えはファイル名だけをリストします、しかしトップ5ファイルを得るために1つはまた使用できます:

ls -lht | head -6

ここで、

リスト形式での-lの出力

-hは、出力を人間が読めるようにします(すなわち、ファイルサイズはkb、mbなどで表示されます)。

-tは最後に修正されたファイルを最初に置くことによって出力をソートします

lsは出力の最初の行にブロックサイズを表示するため、head -6は5つのファイルを表示します。

私はこれがもう少しエレガントでそしておそらくもっと役に立つアプローチであると思います。

出力例:

total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv

8
samisnotinsane

ls -tは、作成日時順にリストされたファイルで、最終変更日時ではありません。最後から最後(上から下)に最後に変更された時間でファイルをリストしたい場合はls -ltcを使用してください。したがって、最後のnをリストするには:ls -ltc | head ${n}

2
victrr