"पूर्ववत करें" आदेश को अनज़िप कैसे करें?


19

मैंने एक ज़िप फ़ाइल निकालने के लिए "unzip XXX.zip" का उपयोग किया, दुर्भाग्यपूर्ण, मैं एक गलती करता हूं।

अब मैं "अनज़िप" द्वारा उत्पन्न सभी फ़ाइल और निर्देशिकाओं को हटाना चाहता हूं।
मैं इसे पूर्ववत कैसे कर सकता हूं?

जवाबों:


29

इसे इस्तेमाल करो:

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}

यदि आप संदेह में हैं तो इसका उपयोग करें (पुष्टि के लिए संकेत देगा)

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {} 

अगर किसी भी फाइल के नाम में जगह है तो फेल ... (+1 अब -iएडिट के साथ । :)
sarnold

इस समस्या में है awk '{print $4}'- रिक्त स्थान के साथ एक फ़ाइल नाम हो सकता है $4 $5 $6 ...। :)
3

1
ठीक है। वह भी तय।
अभिजीत रस्तोगी

5
FTR ने मूल जिप फ़ाइल
sjr

मेरा तरीका:unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
zhuguowei

5

आप एक मोटे स्थान पर हैं; मानक zipinfo(1)उपयोगिता किसी भी तंत्र को अशुभ फ़ाइलनामों को संग्रह से बाहर निकालने के लिए प्रदान नहीं करती है। लेकिन , आप करीब आ सकते हैं:

zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i

अगर आपको यकीन है कि उनमें से किसी भी फाइल में नई-नई लाइनें नहीं हैं, तो आप -iविकल्प को हटा सकते हैं rm(1)(जो निश्चित रूप से थकाऊ होगा)।


4
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}

क्या काम करता है क्योंकि उपयोगिता और विकल्प को -Zआमंत्रित करता है यह केवल फ़ाइल नाम प्रिंट करने के लिए कहता हैzipinfo-1

आप इसके बारे में man unzipऔर man 1 zipinfoआदेशों के बारे में अधिक जानकारी प्राप्त कर सकते हैं


1

यदि आप पहले एक फ़ोल्डर बनाए बिना गलती से अनज़िप करने के बाद अपनी निर्देशिका को साफ़ करना चाहते हैं, तो आप उस फ़ोल्डर को बना सकते हैं, उस पर अनज़िप करें और फिर:

rm -r ` ls folder `

"` 'आदेशों का पीछा करने के लिए सुपर उपयोगी है लेकिन यह बहुत शाब्दिक है।

टिप्पणियों ने इस उत्तर को बेहतर बनाया है, यदि आप यह सुनिश्चित करना चाहते हैं कि आप छिपी हुई फ़ाइलों को भी हटा दें (जो आप शायद करते हैं), ऐसा करें

rm -r ` ls -A folder `

गलत सिंटैक्स में भाग लेने के लिए माफी, क्या वोट डाउन हटाया जा सकता है?
क्रिस्पीपर 1989

1
यदि ज़िप ने किसी भी फाइल को अधिलेखित करने से इनकार कर दिया, तो मूल को हटा दिया जाएगा। यदि कोई छिपी हुई फ़ाइलों को अनज़िप किया गया था, तो उन्हें हटाया नहीं जाएगा (जब तक कि आप उपयोग न करें ls -a)।
gmarmstrong

1
या बल्कि, ls -A, लिस्टिंग से त्रुटियों से बचने के .और..
gmarmstrong

0

Nautilus (कमांड लाइन के बिना) में ऐसा करने के लिए, आप बस उस जगह पर नेविगेट कर सकते हैं जहां आपने गलती से फ़ाइलों को निकाला है, "संशोधित" टैब पर क्लिक करके फ़ाइलों को सॉर्ट करें, फिर सटीक समय के साथ लेबल की गई सभी फ़ाइलों का चयन करें और हटाएं अनज़िप कमांड को चलाया।


1
कृपया प्रश्न को फिर से ध्यान से पढ़ें। आपका उत्तर मूल प्रश्न का उत्तर नहीं देता है । दुर्भाग्य से लिनक्स में विंडोज एक्सप्लोरर शामिल नहीं है।
DavidPostill

आह, हाँ! यह मेरे लिए नहीं हुआ था कि अनज़िप अभी तक एक विंडोज़ टर्मिनल कमांड नहीं था। धन्यवाद! मैं यह देखने के लिए जाँच करूंगा कि क्या Nautilus में समान कार्यक्षमता है और उत्तर को संपादित करें। अन्यथा, मैं अभी इसे हटा दूंगा।
कैमरूनोयट्रायलर

-1
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}

2
हालांकि यह प्रश्न का उत्तर दे सकता है, यह एक बेहतर उत्तर होगा यदि आप कुछ स्पष्टीकरण प्रदान कर सकते हैं कि ऐसा क्यों होता है।
DavidPostill
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.