So zeigen Sie die Erstellungszeit von Dateien in Linux an

So zeigen Sie die Erstellungszeit von Dateien in Linux an

1. Einleitung

Ob die Erstellungszeit einer Datei unter Linux ermittelt werden kann, hängt vom Dateisystemtyp ab. In frühen Dateisystemen vor ext4 (ext, ext2, ext3) zeichnen die Metadaten der Datei nicht die Erstellungszeit der Datei auf, sondern nur die Zugriffszeit, Änderungszeit und Änderungszeit (Statusänderungszeit). Die grundlegenden Informationen einer typischen Datei lauten wie folgt:

[root@bugwz ~]# stat test.datei
 Datei: „test.file“
 Größe: 2 Blöcke: 8 IO Blöcke: 4096 reguläre Datei
Gerät: 807h/2055d Inode: 5255117 Links: 1
Zugriff: (0755/-rwxr-xr-x) Uid: (0/root) Gid: (0/root)
Zugriff: 2019-12-12 19:11:33.175841399 +0800
Ändern: 2019-12-12 19:11:37.564970487 +0800
Änderung: 2019-12-12 19:11:43.079132663 +0800
 Geburt: -
  • Zugriff: Zugriffszeit, der letzte Zugriffszeitpunkt der Dateidaten (zum Beispiel: Lesen des Dateiinhalts);
  • Ändern: Änderungszeit, der letzte Änderungszeitpunkt der Dateidaten. (Zum Beispiel: Dateiinhalte ändern);
  • Ändern: Zeitpunkt der Statusänderung, der leicht mit dem Änderungszeitpunkt verwechselt werden kann. Dies ist der Zeitpunkt, zu dem die Dateiattribute (Berechtigungen, Größe usw.) geändert werden.

2. Üben

2.1. Holen Sie sich die Erstellungszeit der Datei

Holen Sie sich die Inode-Nummer der Datei, wie unten gezeigt, die Inode-Nummer lautet: 5255117;

[root@bugwz-Daten]# stat /data/test.file
 Datei: „/data/test.file“
 Größe: 2 Blöcke: 8 IO Blöcke: 4096 reguläre Datei
Gerät: 807h/2055d Inode: 5255117 Links: 1
Zugriff: (0755/-rwxr-xr-x) Uid: (0/root) Gid: (0/root)
Zugriff: 2019-12-12 19:11:33.175841399 +0800
Ändern: 2019-12-12 19:11:37.564970487 +0800
Änderung: 2019-12-12 19:11:43.079132663 +0800
 Geburt: -

Suchen Sie den Datenträgerpfad, auf dem sich die Datei befindet. Der Datenträgerpfad lautet wie unten gezeigt: /dev/sda7

[root@bugwz-Daten]# df -h
Verwendete Dateisystemgröße Verfügbare Nutzung% Eingebunden auf
/dev/sda3 3,9 G 2,5 G 1,2 G 70 % /
devtmpfs 16G 0 16G 0 % /Entwickler
tmpfs 16G 0 16G 0 % /Entwickler/shm
tmpfs 16 G 1,7 G 14 G 11 % /Lauf
tmpfs 16G 0 16G 0 % /sys/fs/cgroup
/dev/sda1 12G 11G 787M 94% /usr
/dev/sda5 7,8 G 4,2 G 3,2 G 57 % /tmp
/dev/sda7 235 G 180 G 44 G 81 % /Daten
/dev/sda6 7,8 G 2,1 G 5,3 G 29 % /var

Verwenden Sie debugfs, um die Erstellungszeit der Datei anzuzeigen. Sie finden heraus, dass die Erstellungszeit crtime ist: Do 12. Dez 2019 19:05:23

[root@bugwz data1]# debugfs -R 'stat <5255117>' /dev/sda7
debugfs 1.42.9 (28. Dezember 2013)
Inode: 5255117 Typ: regulär Modus: 0755 Flags: 0x80000
Generation: 758605841 Version: 0x00000000:00000001
Benutzer: 0 Gruppe: 0 Größe: 2
Datei-ACL: 0 Verzeichnis-ACL: 0
Links: 1 Blockanzahl: 8
Fragment: Adresse: 0 Nummer: 0 Größe: 0
 ctime: 0x5df2206f:12dddfdc – Do., 12. Dezember 2019, 19:11:43 Uhr
 atime: 0x5df22065:29ec81dc – Do., 12. Dezember 2019, 19:11:33 Uhr
 mtime: 0x5df22069:86b30fdc – Do., 12. Dezember 2019, 19:11:37 Uhr
crtime: 0x5df21ef3:d586ca44 – Do., 12. Dezember 2019, 19:05:23 Uhr
Größe der zusätzlichen Inode-Felder: 28
UMFANG:
(0):16949121

2.2. Integrationsskript:

#!/bin/sh
[ $# -ne 1 ] && echo "Verwendung: $0 {FILENAME}" && exit 1

INODE=`ls -i $1 |awk '{print $1}'`
DATEINAME=$1

# Wenn der Parameter / enthält, holen Sie sich den Verzeichnispfad des Parameters und wechseln Sie in das Verzeichnis `echo $FILENAME | grep / 1> /dev/null` && { FPWD=${FILENAME%/*};FPWD=${FPWD:=/};cd ${FPWD};FPWD=`pwd`; } || FPWD=`pwd`

Array = (`echo ${FPWD} | sed 's@/@ @g'`)
Arraylänge=${#array[@]}

für ((i=${array_length};i>=0;i--)); tun
 nicht gesetztes Array[$i]
 SUBPWD=`echo " "${array[@]} | sed 's@ @/@g'`
 DISK=`df -h |grep ${SUBPWD}$ |awk '{print $1}'`
 [[ -n $DISK ]] && abbrechen
Erledigt

# Beenden, wenn das Dateisystem nicht ext4 ist [[ "`df -T | grep ${DISK} |awk '{print $2}'`" != "ext4" ]] && { echo ${DISK} wird nicht auf Typ ext4 gemountet! Nur ext4-Dateisystem wird unterstützt!;exit 2; }

debugfs -R "stat <${INODE}>" ${DISK}

Referenzadresse: https://www.jb51.net/article/176316.htm

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Verwenden Sie die Befehle more, less und cat in Linux, um Dateiinhalte anzuzeigen
  • Linux verwendet den Befehl lsof, um den Status des Dateiöffnens zu überprüfen
  • Detaillierte Beispiele zum Anzeigen von Dateiattributen in Linux (ls, lsattr, file, stat)
  • So zeigen Sie Ordnergrößen an und sortieren nach Größe in Linux
  • Eine einfache Möglichkeit, die Dateisystemblockgröße und die Speicherseitengröße in Linux anzuzeigen
  • Linux-Befehl „du“ zum Anzeigen von Ordnergrößen und Sortieren in absteigender Reihenfolge
  • Detaillierte Erklärung der Befehle zum Anzeigen von Linux-Dateien

<<:  Detaillierte Erklärung basierend auf Event Bubbling, Event Capture und Event Delegation

>>:  MySql-Import - CSV-Datei oder tabulatorgetrennte Datei

Artikel empfehlen

So zeigen Sie Versionsinformationen in Linux an

So zeigen Sie Versionsinformationen unter Linux a...

Mehrere gängige Methoden für CSS-Layouts mit gleicher Höhe

Gleichhohes Layout Bezieht sich auf das Layout vo...

Detailliertes Installationstutorial für die MySQL-Zip-Archivversion (5.7.19)

1. Laden Sie die Zip-Archivversion von der offizi...

Die CSS-Priorität der Webseite wird für Sie ausführlich erklärt

Bevor wir über die CSS-Priorität sprechen, müssen...

So entfernen Sie die Trennlinie einer Webseitentabelle

<br />So entfernen Sie die Trennlinien einer...

Interaktion im Webdesign: Eine kurze Diskussion über Paging-Probleme

Funktion: Zur vorherigen Seite oder zur nächsten ...

Webdesign-Tutorial (6): Behalte deine Leidenschaft für Design

<br />Vorheriger Artikel: Webdesign-Tutorial...

Detaillierte Erklärung und Erweiterung von ref und reactive in Vue3

Inhaltsverzeichnis 1. Ref und reaktiv 1. reaktiv ...