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

5

Wenn ich eine tar.gzDatei auf Debian Lenny entpacke , erhalte ich die folgenden 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 die Zeit des Systems vergleicht. Ich benutze touchwie folgt, um den Zeitstempel der Datei zu ändern, und statzeige, dass der Zeitstempel der Datei die aktuelle Zeit des Systems ist. Dann versuche ich, die Datei zu entpacken, aber es tritt immer noch das gleiche Zeitstempelproblem auf (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 benutze NTP. Aber ich frage mich, warum das Ändern des Zeitstempels der Datei durch touchnicht funktioniert hat? Wie hätte ich den Zeitstempel der Datei ändern sollen, damit ich diese Warnung nicht bekomme?

Wenn Sie das Dateisystem sehen wollen:

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
Angs
quelle

Antworten:

4

Es hat nicht funktioniert, weil Sie den Zeitstempel des Archivs und nicht der darin enthaltenen Dateien geändert haben . Wenn Sie statdie tar.gzDatei ausführen, werden Sie feststellen, dass die Uhrzeit korrekt geändert wurde. touchSie können erst dann auf die im Archiv gespeicherten Dateien zugreifen, wenn Sie sie extrahieren, sodass sie unverändert bleiben.

In jedem Fall sollte dies kein Problem sein, entpacken Sie einfach das Archiv und ändern Sie 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 '{}' \;
terdon
quelle
5

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

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