शीर्ष निर्देशिकाओं को ट्रिम कैसे करें


14

मेरे पास एक ज़िप संग्रह है। unzip -l myarchive.zipआदेश इस सूची देता है:

top/subtop/files/1.txt
top/subtop/files2/2.txt
etc

रूट फोल्डर सभी फाइलों के लिए टॉप / सबटॉप हैं। दो शीर्ष / सबटॉप फ़ोल्डरों के बिना उन फ़ाइलों को कैसे निकालें?

जैसे जब मैं / घर / myuser / public_html निर्देशिका में हूं, files/1.txtऔर files2/2.txtजोर से उस निर्देशिका में सीधे निकाला जा सकता है।

मैंने कोशिश की, unzip myarchive.zip top/subtop/*लेकिन इसने वैसे भी टॉप / सबटॉप डायरेक्टरी बनाई।

जवाबों:


9

दुर्भाग्य से, आप नहीं कर सकते। आपका एकमात्र वास्तविक विकल्प केवल उन्हें निकालने के बाद उन्हें स्थानांतरित करना है।


हम्म, जानकर अच्छा लगा। मैंने यह इसलिए पूछा क्योंकि कुछ दिन पहले, एक संग्रह बनाते समय , यह ऊपर से कुछ रास्ते जोड़ रहा था, अनायास ही। इसलिए अतिरिक्त शीर्ष पथों के कारण उन्हें अनज़िप करने में समस्या थी। हालाँकि, मैं इसे आज नहीं दोहरा सकता - आज यह ठीक काम कर रहा है, यानी जब टॉप / सबटॉप डायरेक्टरी में और zip -r files.zip * कर रहा हो तो यह टॉप / सबटॉप पथ को फाइल्स पथ में उपसर्ग के रूप में नहीं जोड़ता है। मुझे लगता है कि मैं बिल्कुल एक ही कमांड करता हूं, लेकिन अजीब तरह से, परिणाम अलग-अलग होते हैं, इसलिए अनजिपिंग करते समय शीर्ष निर्देशिकाओं को पट्टी करना आवश्यक नहीं है।
कैमकैम

ध्यान दें कि सभी निर्देशिकाओं को अनदेखा करना संभव है (बस सभी फाइलों को एक दूसरे के बगल में रखकर) के साथ unzip -j
स्काइलर इटनर

4

आप tarकमांड की कोशिश करना चाह सकते हैं , जिसमें एक --strip-componentsविशेषता है और ज़िप फ़ाइलों पर काम कर सकता है।


2
टार (GNU टार) 1.15.1 के साथ काम नहीं करता है:tar: This does not look like a tar archive tar: Error exit delayed from previous errors
केविन पैंको

2
FreeBSD का टार ज़िप-अभिलेखागार को संभाल सकता है। अन्य टार-कार्यान्वयन पूर्ण-दुर्भाग्य के रूप में नहीं हैं, दुर्भाग्य से।
मिखाइल टी।

1
डेबियन उपयोगकर्ताओं के लिए, FreeBSD का टार bsdtar (apt-get install bsdtar) के रूप में उपलब्ध है यदि आप ज़िप फ़ाइलों को निकालने के लिए टार का उपयोग करना चाहते हैं।
निकल्स बी

0

मैंने इस आदेश का उपयोग सभी ज़िप की गई फ़ाइलों को निकालने के बाद अपनी रूट फ़ाइल निर्देशिका में सभी फ़ाइलों को कॉपी करने के लिए किया, यह बहुत अच्छा काम किया। विशाल समय सेवर:

for /r %f in (00P*) do @copy "%f" 

( http://mlichtenberg.wordpress.com/2011/01/25/command-line-fun-how-to-flatten-a-folder-hierarchy/ )


5
आपको पता है कि यह एक डॉस कमांड है, और लिनक्स कमांड लाइन के साथ इसका कोई लेना-देना नहीं है, है ना?
MestreLion

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