Zeitstempel XXXX s in der zukünftigen Ausgabe - Touch-Befehl (Linux)

Zeitstempel XXXX s in der zukünftigen Ausgabe - Touch-Befehl (Linux)

Wenn ich eine Datei unter Debian Lenny entpacke tar.gz, erhalte ich folgende Ausgaben:

tar: openssl-1.0.1e/apps/openssl.cnf: time stamp 2013-02-11 15:26:04 is 1360584537.139999998 s in the future
openssl-1.0.1e/apps/openssl-vms.cnf
tar: openssl-1.0.1e/apps/openssl-vms.cnf: time stamp 2013-02-11 15:26:04 is 1360584537.129999998 s in the future
openssl-1.0.1e/apps/passwd.c

Ich sehe, dass der Zeitstempel der Datei in der Zukunft liegt, wenn ich ihn mit der Systemzeit vergleiche. Ich verwende touchFolgendes, um den Zeitstempel der Datei zu ändern, und states zeigt sich, dass der Zeitstempel der Datei die aktuelle Systemzeit ist. Dann versuche ich, die Datei zu entpacken, aber ich habe immer noch dasselbe Zeitstempelproblem (wie oben).

ts7500:/home# touch -am openssl-1.0.1e.tar.gz 
ts7500:/home# stat openssl-1.0.1e.tar.gz 
  File: `openssl-1.0.1e.tar.gz'
  Size: 4459777         Blocks: 8736       IO Block: 4096   regular file
Device: 2b09h/11017d    Inode: 40802       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 1970-01-01 03:15:24.000000000 +0000
Modify: 1970-01-01 03:15:24.000000000 +0000
Change: 1970-01-01 03:15:24.000000000 +0000
ts7500:/home# date
Thu Jan  1 03:15:48 UTC 1970
ts7500:/home# tar xvf openssl-1.0.1e.tar.gz

Ich weiß, dass ich das Problem lösen kann, indem ich die Systemzeit ändere date -s "08 JUN 2013 00:19:00"oder verwende NTP. Aber ich frage mich, warum das Ändern des Zeitstempels der Datei touchnicht funktioniert hat. Wie hätte ich den Zeitstempel der Datei ändern sollen, damit ich diese Warnung nicht bekomme?

Wenn Sie das Dateisystem sehen möchten:

ts7500:/home# blkid
/dev/nbd6: SEC_TYPE="msdos" UUID="01E8-4C7D" TYPE="vfat" 
/dev/nbd8: UUID="236b63b3-15db-40c3-bc5f-e4b7c4b10751" TYPE="ext2" 
/dev/nbd9: UUID="5b13aa84-e589-41a7-84cf-2d0d6bf2a9cd" TYPE="ext3" 
ts7500:/home# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
tmpfs        tmpfs     31M  4.0K   31M   1% /lib/init/rw
udev         tmpfs     10M  160K  9.9M   2% /dev
tmpfs        tmpfs     31M     0   31M   0% /dev/shm
rootfs      rootfs    3.3G  1.7G  1.5G  53% /
/dev/root     ext2    2.0M  1.7M  311K  85% /initrd

Antwort1

Es hat nicht funktioniert, weil Sie den Zeitstempel derArchiv, nicht der darin enthaltenen Dateien. Wenn Sie statdie tar.gzDatei ausführen, werden Sie feststellen, dass die Zeit korrekt geändert wurde. touchSie können nicht auf die im Archiv gespeicherten Dateien zugreifen, bis Sie sie extrahieren, sodass sie unverändert blieben.

Dies sollte in jedem Fall kein Problem darstellen. Entpacken Sie einfach das Archiv und ändern Sie dann den Zeitstempel der Dateien:

mkdir foo
mv openssl-1.0.1e.tar.gz foo/
cd foo/
tar xvvzf openssl-1.0.1e.tar.gz
find . -exec touch -am '{}' \;

Antwort2

Sie können Ihre Tar-Datei mit dem Parameter --touch extrahieren, um dies automatisch zu erledigen.

tar --touch -xvf openssl-1.0.1e.tar.gz

verwandte Informationen