भविष्य के मुद्दे में समय की मुहर XXXX - टच कमांड (लिनक्स)


5

जब मैं अनार ए tar.gz डेबियन लेनी पर फ़ाइल, मुझे ऐसे आउटपुट मिलते हैं:

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

मैं देख रहा हूं कि फाइल का टाइम स्टैम्प भविष्य में सिस्टम के समय की तुलना में है। मैं उपयोग करता हूं touch फ़ाइल का समय टिकट बदलने के लिए नीचे के रूप में, और stat दिखाता है कि फाइल का टाइम स्टैम्प सिस्टम का करंट टाइम है, तो मैं फाइल को अनटार करने का प्रयास करता हूं, लेकिन मुझे अभी भी उसी समय की स्टैम्प समस्या है (जैसा कि ऊपर है)।

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

मुझे पता है कि मैं सिस्टम के समय को बदलकर समस्या को हल कर सकता हूं date -s "08 JUN 2013 00:19:00" या उपयोग करें NTP। लेकिन मुझे आश्चर्य है, क्यों फ़ाइल के समय टिकट बदलकर touch काम नहीं किया? मुझे फ़ाइल का समय स्टैम्प कैसे बदलना चाहिए, ताकि मुझे वह चेतावनी न मिले?

यदि आप फ़ाइल सिस्टम देखना चाहते हैं:

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

जवाबों:


4

यह काम नहीं आया क्योंकि आपने टाइमस्टैम्प को बदल दिया था पुरालेख फाइलों में से यह शामिल नहीं है। अगर तुम दौड़ते हो stat पर tar.gz फ़ाइल आप पाएंगे कि समय सही ढंग से बदल गया था। touch संग्रह के भीतर संग्रहीत फ़ाइलों को तब तक एक्सेस नहीं किया जा सकता जब तक आप उन्हें नहीं निकालते हैं ताकि वे अपरिवर्तित न रहें।

किसी भी मामले में, यह एक समस्या नहीं होनी चाहिए, बस संग्रह को अनटार्ट करें, फिर फ़ाइलों का टाइमस्टैम्प बदलें:

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

5

आप स्वचालित रूप से ऐसा करने के लिए --touch पैरामीटर के साथ अपनी टार फ़ाइल निकाल सकते हैं।

tar --touch -xvf openssl-1.0.1e.tar.gz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.