'ls' gibt unterschiedliche Zeitstempel für Dateien in / tmp und nicht für das Home-Verzeichnis aus

350
Winston Tsai

Ich bin in meine Universitäts-Linux-Server (RHEL 7) eingebunden. Das ist der Deal. Es hat mit 'ls' und "alten" Dateien zu tun.

Heimatverzeichnis:

$ touch -d '1918-11-11 11:00 GMT' wwi-armistice $ touch now $ sleep 1 $ touch now1 $ TZ=UTC0 ls -lt --full-time wwi-armistice now now1 -rw-r--r-- 1 tsai csugrad 0 2054-12-17 17:28:16.000000000 +0000 wwi-armistice -rw-r--r-- 1 tsai csugrad 0 2018-05-04 22:07:10.743637000 +0000 now1 -rw-r--r-- 1 tsai csugrad 0 2018-05-04 22:06:59.992632000 +0000 now 

tmp-Verzeichnis:

$ tmp=$(mktemp -d) $ cd $tmp $ touch -d '1918-11-11 11:00 GMT' wwi-armistice $ touch now $ sleep 1 $ touch now1 $ TZ=UTC0 ls -lt --full-time wwi-armistice now now1 -rw-r--r-- 1 tsai csugrad 0 2018-05-04 23:04:27.031485854 +0000 now1 -rw-r--r-- 1 tsai csugrad 0 2018-05-04 23:04:22.907373125 +0000 now -rw-r--r-- 1 tsai csugrad 0 1918-11-11 11:00:00.000000000 +0000 wwi-armistice 

Ich weiß, warum die erste Ausgabe zeigt, dass der Wwi-Waffenstillstand im Jahr 2054 etwas mit der vorzeichenlosen 32-Bit-Umwandlung in eine 32-Bit-Umwandlung von Unix-Zeit zu tun hat. Wenn jemand das bestätigen könnte und vielleicht erklärt warum (etwas nfs?), Wäre das toll.

Meine zweite, größere Frage ist: Warum wird wwi-armistice korrekt aufgelistet, wenn ich dieses Beispiel im tmp-Verzeichnis mache?

Denken Sie daran, dass ich nicht wirklich etwas über Networking weiß, daher wäre eine grundlegende Erklärung hilfreich.

1
Standardmäßig erstellt `mktemp` das Verzeichnis in` / tmp`, das ein anderes Dateisystem als der erste Fall sein kann. Patrick Mevzek vor 5 Jahren 0
hat die Tatsache, dass ich über ein Netzwerk verbunden bin, nichts damit zu tun? Winston Tsai vor 5 Jahren 0
Wenn Sie "ssh" verwenden, um auf eine Login-Shell in einem System zuzugreifen, wie Sie dies tun, entspricht dies im Wesentlichen der Anmeldung am lokalen System über die physische Tastatur, jedoch ohne GUI. Daher gibt es normalerweise keine zusätzlichen "Netzwerke" im Spiel, außer der TCP-Sitzung, bei der die Eingabe und Ausgabe des Terminals zwischen Ihrem lokalen System und dem Remote-Server übertragen wird. In Abhängigkeit von den Verwaltungsrichtlinien wird Ihr Home-Verzeichnis beim Anmelden möglicherweise von einem Netzwerk-Dateiserver bereitgestellt. `/ Tmp` ist jedoch normalerweise ein lokales Dateisystem, das direkt verbunden ist. Nevin Williams vor 5 Jahren 1

1 Antwort auf die Frage

1
Nevin Williams

Es kann hilfreich sein, wenn Sie hier die Dateisysteme und ihre aktivierten Optionen identifizieren können.

mount zeigt die Dateisystemhierarchie und die Optionen für die Mount-Zeit an.

stat -f --format="%T" $filedruckt den Dateisystemtyp der genannten Datei. Ich vermute, dass die Ergebnisse für die / tmp-Versionen anders sein werden als die (vermutlich) Ihres Home-Verzeichnisses.

Sobald Sie das spezifische Dateisystem und seine eingebauten Optionen kennen, können Sie die Zeitstempel-Beschränkungen untersuchen, aber ich denke, Sie haben den Kernpunkt: Das erste Dateisystem verfügt nicht über einen ausreichenden numerischen Bereich in seiner Zeitstempel-Bytezuweisung, um das 1918-Datum darzustellen der zweite tut es.