Datum der letzten Änderung der Datei in Linux abrufen


112

Ich bin neu in Linux. Ich benutze die Kommandozeile. Ich versuche, das letzte Änderungsdatum einer Datei anzuzeigen. Wie mache ich das unter Linux von der Kommandozeile aus?


16
ls -l funktioniert auch ...
Daniel Beck


1
@DanielBeck ist das Datum von ls -l das Änderungsdatum oder das Erstellungsdatum?
Bruno Bieri

1
@BrunoBieri Es ist das Änderungsdatum. Sehen man ls. Typische Linux-Dateisysteme protokollieren nicht einmal das Erstellungsdatum. In der akzeptierten Antwort finden Sie Informationen zu den protokollierten Datumsangaben.
Daniel Beck

Antworten:


98

Wie von @ edvinas.me erwähnt, stat Informiert Sie über verschiedene Informationen zur Datei, einschließlich des Datums der letzten Änderung.

Zuerst war ich verwirrt mit Ändern und Veränderung , nur um klarzustellen, stat Ausgabelisten:

  • Zugriff zeigt den Zeitpunkt des letzten Datenzugriffs (z. B. Lesen).
  • Ändern Zeigt den Zeitpunkt der letzten Datenänderung an.
  • Veränderung Zeigt den Zeitpunkt an, zu dem sich der Dateistatus zuletzt geändert hat.

Zum Beispiel:

~ $ 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: -

59

Benutzen stat Befehl dafür:

$ stat file

21
Wenn Sie nur das Datum der letzten Änderung (in lesbarer Form) wünschen, verwenden Sie stat -c '%y' file
Adam Taylor

20

Eine andere Möglichkeit, die flexibler ist, ist die Verwendung date -r. Von man date:

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

Dies hat den Vorteil, dass Sie das Ausgabeformat festlegen können, z.

$ 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

1
Ja, sehr hilfreich, danke. Hier ist eine Bash-Funktion, die eine Datei umbenennt, der die geänderte Zeit vorangestellt wird: function mvfilestime () {if [x "$ {1}" = "x"]; echo dann "mvfilestime: Fehlendes Argument der Datei an mv" else f = $ (Datum + "% Y-% m-% d-% H-% M" -r $ {1}) - $ {1} {1} $ {f} mv $ {1} $ {f} fi}
Traveler

14

ls -l sollte die Arbeit machen.

Beispiel:

#> 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

2

Wenn sich die Datei auf einem anderen Webserver befindet, mag ich httpie ( docs ).

Installation

pip install httpie --user

Verwendungszweck

Das -h Befehl gibt nur den Header. Das Muster ist

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

Beispiel:

$ 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

Das Date Dies ist wichtig, da hier die Serverzeit und nicht Ihre Ortszeit angezeigt wird. Auch sendet nicht jeder Server Last-Modified (z. B. Superuser scheint das nicht zu tun).


1

1) Dateiverzeichnis mit Datum und Uhrzeit der letzten Änderung auflisten

Um Dateien aufzulisten und die zuletzt geänderten Dateien oben anzuzeigen, verwenden wir -lt Optionen mit ls Befehl.

$ 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/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.