जवाबों:
संपादित करें: जैसा कि टिप्पणियों में उल्लेख किया गया है, tar
संग्रह में तारीखों से मिलान करने के लिए निकाले गए फ़ाइलों के माइम और समय को संशोधित करता है, इसलिए यह पहली विधि तब तक काम नहीं करेगी जब तक -m
कि निष्कर्षण के दौरान ध्वज का उपयोग नहीं किया गया था। अंतिम विधि इष्टतम है, लेकिन फाइल फ़ाइल को हटाने के परिणामस्वरूप आप चाहें तो फ़ाइलनाम टकरा सकते हैं।
find
एक -newer
file
ध्वज का समर्थन करता है , यह निर्दिष्ट करता है कि इसे फ़ाइल की तुलना में नई फ़ाइलें मिलनी चाहिए । touch
फ़ाइल पर पहुँच को संशोधित / संशोधित करने के लिए एक -t तर्क है। तो लगभग 7:25:30 बजे हुई उफ़ को ठीक करने के लिए:
$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp
और अगर आप आश्वस्त हैं कि सही फ़ाइलें प्रदर्शित की गई हैं:
$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v
वैकल्पिक रूप से आपके द्वारा निकाले गए संग्रह में सूचीबद्ध सभी फ़ाइलों को हटाना है:
$ tar tfz whoops.tar.gz | xargs rm -v
tar
जब तक आप -m
ध्वज का उपयोग नहीं करेंगे तब तक अभिलेखागार से तारीखों को संरक्षित करेगा । इसलिए, पहला तरीका सामान्य नियम के रूप में काम नहीं करेगा।