Perlihatkan tahun saat mendaftarkan file di direktori saat ini

58

Saya bekerja di server Red Hat. Perintah ls -latau llmemberi saya tanggal dan waktu dalam format +"%b %-d %H:%M".

Saya ingin membuat daftar file dengan cara di mana tahun ketika masing-masing file dibuat akan muncul dalam tanggal.

Bagaimana mungkin?

WAEL
sumber
tidak, saya tidak berpikir saya mencoba "ls-lT" tidak ditemukan
WAEL
1
ls -lTuntuk mac osx
Kris Roofe
1
Secara umum, Unix tidak melacak waktu pembuatan file, dan, bahkan ketika itu, lsumumnya tidak memiliki cara untuk menampilkannya. Jadi, secara umum, ini tidak mungkin.
G-Man Mengatakan 'Reinstate Monica'

Jawaban:

86

Anda dapat menggunakan man lsdan di sini Anda dapat menemukan --time-styleparameter. Atau Anda dapat menggunakan:

ls --full-time.

Jan Marek
sumber
1
@ Bob: Sepenuhnya setuju dengan Turco. Jika Anda tidak melakukan itu, tidak ada yang akan repot-repot menjawab pertanyaan Anda.
The Dark Knight
5
Contoh untuk gaya waktuls -l --time-style=+%F
sobi3ch
1
Bagi mereka yang sudah llditetapkan sebagai ls -laatau sesuatu yang lain, ll --full-timejuga bekerja.
Meetai.com
8

ls -lakan menampilkan bulan dan tahun - sejak , menurut halaman manual BSD: Jika waktu modifikasi file lebih dari 6 bulan di masa lalu atau masa depan, maka tahun modifikasi terakhir ditampilkan di tempat bidang jam dan menit .

Jadi, untuk memastikan tahun itu akan selalu ditampilkan, gunakan:

ls --time-style=long-iso (GNU / Linux)

ls -lT akan menampilkan tampilan informasi waktu lengkap dalam BSD (MacOS)

Daniel Cambría
sumber
6

Karena Anda meminta tahun itu, ls -lacmudah untuk diingat jika, seperti saya, Anda selalu menggunakannya ls -la. The cmemberi Anda kriminal yang akan menampilkan satu tahun jika tidak tahun berjalan atau jam dan menit jika itu.

PhilT
sumber
Saya suka ini. Jauh lebih sedikit noise dalam output dan hanya satu huruf yang perlu diingat di masa depan.
Eric
1
Ini tampaknya mengubah perilaku lsto date berubah daripada tanggal default yang dimodifikasi .
Mateen Ulhaq
2
ls -lmenampilkan tanggal dan waktu untuk tanggal dalam enam bulan terakhir, dan tanggal dan tahun untuk tanggal lainnya. ctime bisa dalam enam bulan terakhir seperti halnya mtime (tanggal modifikasi) dapat, jadi ls -lacdapat menampilkan waktu (bukan tahun) sebanyak yang ls -labisa. Selain itu, seperti yang ditunjukkan Mateen Ulhaq, ls -lactidak menampilkan tanggal yang ls -lasama. Jawaban ini salah.
G-Man Mengatakan 'Reinstate Monica'
2
Bagaimana di dunia "jawaban" ini mendapatkan tujuh suara?
G-Man Mengatakan 'Reinstate Monica'
5

Selain jawaban Jan Marek .... Saya perhatikan Anda dapat pergi hanya dengan:

ls - penuh atau ls --fu

yang akan melakukan hal yang sama ls --full-timeseperti yang dia jelaskan. Terima kasih Stéphane Chazelas. Sekarang saya mengetik di ls --fumana-mana. :)

G_Style
sumber
1
Atau ls --fu. Opsi panjang gaya GNU dapat disingkat selama tidak ada ambiguitas ( --ftidak akan berfungsi karena ada juga tipe --file dan --format). Perhatikan bahwa versi yang akan datang mungkin memperkenalkan --full-permssehingga berbahaya untuk mengandalkannya.
Stéphane Chazelas
1
Senang mengetahui! Ini semua tentang mengetik lebih sedikit. :)
G_Style
2

Jika Anda menggunakan busybox(distro yang disematkan, misalnya OpenWRT, LEDE), sakelar yang Anda cari adalah -euntuk versi hingga 1.26.2 dan --full-timeuntuk 1.27.0 dan yang lebih tinggi (lihat komit yang mengubahnya ).

Kode Bling
sumber
1
-ejuga bekerja dengan Solaris lsdan ast-open, jadi itu sebenarnya lebih dekat ke standar daripada GNU --full-time. Sayang sekali busybox menghapusnya di versi yang lebih baru.
Stéphane Chazelas
@ StéphaneChazelas tidak tahu itu! Terima kasih atas hasil editnya
Code Bling
-1

mungkin favorit:

$ ls -altT / path / ke / some / dir

象 嘉 道
sumber
Seperti yang ditunjukkan sebelumnya , -Topsi tidak akan berfungsi dengan GNU ls(juga tidak ditentukan dalam POSIX). Juga, ketika memberikan kode sebagai jawaban, lebih baik menjelaskan apa yang dilakukan masing-masing bagian.
Anthony G - keadilan untuk Monica