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: -
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:
|
<<: Detaillierte Erklärung basierend auf Event Bubbling, Event Capture und Event Delegation
>>: MySql-Import - CSV-Datei oder tabulatorgetrennte Datei
Inhaltsverzeichnis Fallstricke bei Zeitstempelver...
F1: Welche Indizes hat die Datenbank? Was sind di...
Vorwort Normalerweise müssen Sie beim Erstellen v...
Es gibt zwei Möglichkeiten, Container-Ports in Do...
1. MySQL herunterladen Offizielle Website-Downloa...
Lange Zeit wurde die Entwicklung von Websites dad...
1. Um die Abfrage zu optimieren, sollten Sie voll...
Inhaltsverzeichnis 1. Doppelte Anfragen storniere...
Inhaltsverzeichnis Hintergrund Kompilieren Sie gl...
<br />Dieser Artikel soll Anfängern hauptsäc...
Verwenden Sie apk add ansible, um den Ansible-Die...
Vorwort Golang stellt das Datenbank-/SQL-Paket fü...
1: Installieren Sie MongoDB im Docker Schritt 1: ...
Das Hinzufügen/Entfernen von Klassen zu Elementen...
In diesem Artikelbeispiel wird der spezifische Co...