Dapatkan Tanggal Terakhir Dimodifikasi File di Linux

149

Saya baru mengenal Linux. Saya menggunakan baris perintah. Saya mencoba melihat tanggal modifikasi terakhir dari suatu file. Bagaimana saya melakukannya di Linux dari Command Line?

pengguna70192
sumber
25
ls -ljuga bekerja ...
Daniel Beck
1
@DanielBeck adalah tanggal dari tanggal ls -lyang diubah atau tanggal buat?
Bruno Bieri
1
@BrunoBieri Ini tanggal modifikasi. Lihat man ls. Sistem file Linux biasa bahkan tidak melacak tanggal pembuatan - lihat jawaban yang diterima untuk jenis tanggal yang dilacak.
Daniel Beck

Jawaban:

133

Seperti disebutkan oleh @ edvinas.me, statmemberi tahu Anda berbagai informasi tentang file termasuk tanggal terakhir yang dimodifikasi.

Pada awalnya, saya bingung dengan Ubah dan Ubah , hanya untuk memperjelas, statdaftar keluaran:

  • Akses menunjukkan waktu akses data terakhir (mis. Baca).
  • Modifikasi menunjukkan waktu modifikasi data terakhir.
  • Perubahan menunjukkan waktu status file terakhir kali diubah.

Sebagai contoh:

~ $ touch foo
~ $ stat foo
File: ‘foo’
Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 410397      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:06:11.343616258 +0200
Modify: 2015-09-21 12:06:11.343616258 +0200
Change: 2015-09-21 12:06:11.343616258 +0200
Birth: -

~ $ echo "Added bar to foo file" >> foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:09:31.302713093 +0200
Birth: -

~ $ chmod 444 foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0444/-r--r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:10:16.040310543 +0200
Birth: -
nephewtom
sumber
65

Gunakan statperintah untuk itu:

$ stat file
phoops
sumber
27
Jika Anda hanya menginginkan tanggal modifikasi terakhir (dalam bentuk yang dapat dibaca manusia), gunakanstat -c '%y' file
Adam Taylor
35

Cara lain yang lebih fleksibel adalah menggunakan date -r. Dari man date:

-r, --reference=FILE
       display the last modification time of FILE

Ini memiliki keuntungan memungkinkan Anda menentukan format output, misalnya

$ date -r foo
Thu Aug 31 10:36:28 AEST 2017
$ date -r foo -R
Thu, 31 Aug 2017 10:36:28 +1000
$ date -r foo -u
Thu Aug 31 00:36:28 UTC 2017
$ date -r foo +%s
1504139788
Sparhawk
sumber
3
Ya, sangat membantu, terima kasih. Berikut adalah fungsi bash yang akan mengganti nama file yang akan diawali oleh waktu yang dimodifikasi: function mvfilestime () {if [x "$ {1}" = "x"]; lalu echo "mvfilestime: Argumen file yang hilang ke mv" selain itu f = $ (tanggal + "% Y-% m-% d-% H-% M" -r $ {1}) - $ {1} echo mv $ {1} $ {f} mv $ {1} $ {f} fi}
Traveler
sempurna, harus menjadi jawaban yang diterima
AB
15

ls -l harus melakukan pekerjaan.

Contoh:

#> ls -l /home/TEST/
total 16

-rw-r--r--   1 rfmas1   nms          949 Nov 16 12:21 create_nd_lists.py

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 enb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nodes_ip.txt

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 rnc_list
Linh Hoang
sumber
2

Jika file ada di server web lain, saya suka httpie( docs ).

Instalasi

pip install httpie --user

Pemakaian

The -hperintah hanya memberikan header. Polanya adalah

http -h [url] | grep 'Last-Modified\|Date'

Contoh:

$ http -h https://martin-thoma.com/author/martin-thoma/ | grep 'Last-Modified\|Date'
Date: Fri, 06 Jan 2017 10:06:43 GMT
Last-Modified: Fri, 06 Jan 2017 07:42:34 GMT

The Datepenting karena ini melaporkan waktu server, bukan waktu lokal Anda. Juga, tidak setiap server mengirim Last-Modified(mis. Pengguna super sepertinya tidak melakukannya).

Martin Thoma
sumber
2

1) Daftar direktori File dengan Tanggal / Waktu Terakhir Dimodifikasi

Untuk membuat daftar file dan menampilkan file yang terakhir dimodifikasi di atas, kami akan menggunakan -ltopsi dengan lsperintah.

$ ls -lt /run
output
total 24
-rw-rw-r--.  1 root utmp 2304 Sep  8 14:58 utmp
-rw-r--r--.  1 root root    4 Sep  8 12:41 dhclient-eth0.pid
drwxr-xr-x.  4 root root  100 Sep  8 03:31 lock
drwxr-xr-x.  3 root root   60 Sep  7 23:11 user
drwxr-xr-x.  7 root root  160 Aug 26 14:59 udev
drwxr-xr-x.  2 root root   60 Aug 21 13:18 tuned

https://linoxide.com/linux-how-to/how-sort-files-date-using-ls-command-linux/

Jon Harper
sumber
1

Khususnya hanya mendapatkan tanggal stat -c %y file | cut -d' ' -f1

Levi Uzodike
sumber