Bagaimana saya bisa mengurutkan output 'ls' berdasarkan tanggal modifikasi terakhir?

Jawaban:

1637
ls -t

atau (untuk kebalikan, paling baru di bagian bawah):

ls -tr

The lshalaman manual menjelaskan hal ini secara lebih detail, dan daftar pilihan lain.

Adnan
sumber
312
ls -haltadalah untuk human readable, show hidden, print details, sort by date.
Evgeni Sergeev
6
Jika ada yang bertanya-tanya, argumen -tdan -rargumen tersebut ditentukan di bagian tentang lsstandar POSIX , jadi harus kompatibel di seluruh Unices.
Mark Amery
5
ls -lltuntuk menunjukkan tanggal-cap waktu bersama dengan pengurutan
Harshul Pandav
4
Ya itu mungkin
Ashraf.Shk786
6
@EvgeniSergeev JANGAN MEMORI ls -haltkesalahan ketik yang sederhana dapat menyebabkan server Anda mogok! linux.die.net/man/8/halt
Isaac
148

Coba ini: ls -ltr. Ini akan memberi Anda yang terbaru ke akhir daftar

Rana
sumber
Saya menggunakan ini untuk mendapatkan daftar file di repositori Git saya pada tanggal edit terakhir mereka. ls -alt $(git ls-files -m)Terima kasih!
NobleUplift
45

Untuk jawaban yang lengkap di sini adalah apa yang saya gunakan: ls -lrth

Masukkan ini dalam skrip startup Anda /etc/bashrcdan tetapkan alias seperti ini: alias l='ls -lrth'Restart terminal Anda dan Anda harus bisa mengetik ldan melihat daftar panjang file.

Dejan
sumber
14
Anda juga dapat menelepon source /etc/bashrcjika Anda ingin menambahkannya ke repertoar Anda saat berjalan.
cwallenpoole
1
Anda juga dapat menambahkannya ~/.bash_aliaseshanya untuk pengguna Anda (orang dapat membuat file jika belum ada
Dinei
29

Saya menggunakan ini:

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

atau

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

untuk melihat secara rekursif file mana yang telah dimodifikasi dalam 5 menit terakhir.

... atau sekarang, dengan versi GNU terbaru temukan :

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

... dan bahkan untuk tidak membatasi file :

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

(perhatikan -dsakelar lsuntuk tidak menampilkan konten direktori)

Cara yang lebih kuat?

Lihatlah anser saya untuk menemukan dan mengurutkan berdasarkan tanggal yang dimodifikasi

F. Hauri
sumber
Maksud Anda secara rekursif ia mencantumkan semua file dalam subdirektori, bukankah sudah ada saklar untuk melakukannya?
jiggunjer
@jiggunjer ls -Rltrakan mengurutkan berdasarkan dir, lalu berdasarkan tanggal, find -type f -mmin -5 -exec ls -ltr {} +hanya akan mencetak file yang dimodifikasi dalam 5 menit terakhir, disortir berdasarkan tanggal, terlepas dari pohon direktori!
F. Hauri
Perhatikan bahwa ini tidak akan berfungsi jika daftar file terlalu panjang untuk dilewatkan sebagai satu permohonan shell ls( unix.stackexchange.com/a/118200/27186 ) - maka Anda akan melihat satu kumpulan file yang diurutkan, kemudian yang lainnya mengurutkan banyak file, dll. tetapi seluruh daftar tidak akan diurutkan. Lihat superuser.com/questions/294161/… untuk mengurutkan daftar yang lebih panjang dengan find.
Unhammer
@unhammer Anda benar, agar ini berfungsi dengan aman, lihat anser saya yang terbaru untuk Unix / Linux temukan dan urutkan berdasarkan tanggal yang dimodifikasi
F. Hauri
20

Menambahkan:

alias lt='ls -Alhtr'

di $homedir/.bashrc

Layer8
sumber
15

Mnemonik

Untuk jangan abaikan entri yang dimulai dengan .dan urutkan berdasarkan tanggal (terbaru lebih dulu):

ls -at

Untuk jangan abaikan entri yang dimulai dengan .dan balikkan urutkan berdasarkan tanggal (terlama lebih dulu):

ls -art

Untuk jangan mengabaikan entri yang dimulai dengan ., gunakan format daftar panjang dan urutkan berdasarkan tanggal (terbaru lebih dulu):

ls -alt

Untuk mencetak ukuran yang dapat dibaca manusia, jangan abaikan entri yang dimulai dengan ., gunakan format daftar panjang dan urutkan berdasarkan tanggal (terbaru lebih dulu) (catatan @EvgeniSergeev):

ls -halt

tapi hati-hati dengan yang terakhir , karena kesalahan ketik yang sederhana dapat menyebabkan server crash ... (@Isaac note)

simhumileco
sumber
14

Temukan semua file pada sistem file yang dimodifikasi secara maksimal 3 * 24 jam (3 hari) yang lalu hingga sekarang:

find / -ctime 3
pai
sumber
10

Untuk menampilkan 10 yang terakhir disortir berdasarkan tanggal, saya menggunakan sesuatu seperti ini:

ls -t ~/Downloads | head -10

atau untuk menunjukkan yang tertua

ls -tr ~/Downloads | tail -10
lfender6445
sumber
itu giv ls -t head -2dan ls -tr | tail -2memberikan hasil yang sama, opsi (-t / -tr) harus dijaga tetap dan dimodifikasi ekor / kepala atau sebaliknya, memodifikasi keduanya seperti modyfing apa
DDS
7

Hanya menggunakan perintah Unix yang sangat mendasar:

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

Ini bekerja di Linux; kolom 8 adalah "n" (numerik), kolom 6 adalah "M", bulan.

Saya baru di sort, jadi jawaban ini mungkin dapat ditingkatkan. Belum lagi, perlu opsi tambahan untuk lsdan sortmenggunakan cap waktu yang tepat, tetapi tidak semua orang akan membutuhkan ini.

bbarker
sumber
5
Saya menduga jawaban Anda belum mendapatkan suara karena itu mem-parsing output ls - lihat argumen kanonik menentang hal itu dan pertanyaan ini tentang tidak mengurai ls
Eponim