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?

user70192
quelle
16
ls -l funktioniert auch ...
Daniel Beck
1
Duplikat von superuser.com/questions/612099/…
Oldskool
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: -
nephewtom
quelle
59

Benutzen stat Befehl dafür:

$ stat file
phoops
quelle
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
Sparhawk
quelle
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
Linh Hoang
quelle
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).

Martin Thoma
quelle
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/

Jon Harper
quelle