पथ

2012-05-25 14 views
23

को संरक्षित किए बिना केवल 7z का उपयोग करके फ़ाइलों को संपीड़ित करना मैं ज़िप फ़ाइलों को निष्पादन योग्य 7z कमांड लाइन का उपयोग कर रहा हूं, लेकिन मुझे लगता है कि संग्रह में जोड़ने के दौरान फ़ाइलों का पथ संग्रह में संरक्षित है।पथ

तो अगर मैं ऐसा

7z a -tzip myzip.zip dir1\dir2\* 

संग्रह myzip.zip पथ dir1 \ dir2 शामिल होंगे। मुझे यह नहीं चाहिए, बल्कि मैं केवल फाइलों को संरक्षित किए बिना ज़िप फ़ाइल में जोड़ना चाहता हूं। मैंने काफी कुछ खोजा लेकिन ऐसा करने का कोई तरीका नहीं दिख रहा है, शायद मुझे कुछ याद आ रही है?

धन्यवाद

उत्तर

19

पूरा पथ दें। यह काम करना चाहिए। वर्तमान स्थान से सापेक्ष पथ नहीं। उदाहरण के लिए, मैं नीचे देता हूं, जहां मैं man5 फ़ोल्डर में फ़ाइलों को संग्रहीत करना चाहता हूं।

$ 7z a -tzip myzip.zip /home/pradeeban/Desktop/man4/man5/* 

ज़िप में निर्देशिकाओं के बिना केवल फाइलें थीं।

फिर मैंने केवल सापेक्ष पथ दिया। इसमें ज़िप के अंदर निर्देशिका थी।

$ 7z a -tzip myzip.zip Desktop/man4/man5/* 

लिनक्स (उबंटू 12.04) के साथ प्रयास किया। सुनिश्चित नहीं है कि यह विंडोज से अलग है या नहीं।

+1

+1 के पथ को संरक्षित करने की आवश्यकता है, यह विंडोज़ में काम करता है। मुझे वास्तव में यह समस्या थी, और वास्तव में यह समाधान काम करता था। –

+0

पुष्टि करने के लिए धन्यवाद। :) –

+2

पूर्ण पथ जोड़ने के लिए आपको यह देखने की आवश्यकता है (सबसे अधिक संभावना है)। समाधान निकले ओ प्रदान कर रहा है और अधिक सुविधाजनक है। यह केवल आपको पथ के सामने एक बिंदु जोड़ने की आवश्यकता है। –

2

रूप 7-zip user FAQ में संबंधित सवाल में बताया गया है, 7z भंडार पथ निर्देशिका काम कर रहा है, तो आप यहां से 7-ज़िप चलाने संग्रह के लिए वांछित शीर्ष-स्तरीय निर्देशिका के लिए पहली cd करने की आवश्यकता होगी के सापेक्ष।

cd dir1\dir2\ 
7z a -tzip myzip.zip * 

आप स्क्रिप्ट से चलाने के लिए और पैदा की प्रक्रिया में बदली हुई निर्देशिका, उपयोग निर्देशिका धक्का/पॉप सुविधाएं उपलब्ध अपनी पसंद के खोल में या चलाने सीडी + 7-ज़िप के साथ इसे प्रभावित करने के लिए प्रभावित करने से बचने के लिए नहीं करना चाहते हैं बदली गई निर्देशिका के साथ आपकी पूरी लिपि। उदाहरण के लिए, विंडोज़ 'स्टार्ट का उपयोग करना होगा:

start /D dir1\dir2\ /wait 7z a -tzip myzip.zip * 
+0

मैं इसे एक स्क्रिप्ट में चला रहा हूं और निर्देशिका को बदलना नहीं चाहता हूं। क्या ऐसा करने का कोई और तरीका नहीं है? – Raam

+0

आपको करना होगा, क्योंकि यह 7z काम करता है।बदली गई निर्देशिका के साथ अपनी संपूर्ण स्क्रिप्ट को प्रभावित करने से बचने के लिए अपनी पसंद के खोल में उपलब्ध निर्देशिका पुश/पॉप सुविधाओं का उपयोग करें या स्पॉन्ड प्रक्रिया में सीडी +7-ज़िप चलाएं। –

+0

रचनात्मक समाधान के लिए धन्यवाद, लेकिन कथिरवेल्लू ने पूरा रास्ता देने के बारे में बताया है कि यह चाल है। – Raam

8

मैं एक तरह से एक रिश्तेदार पथ का उपयोग कर यह करने के लिए की खोज की:

7z a -tzip myzip.zip %CD%\dir1\dir2\* 

% सीडी% कैसे आप एक Windows बैच फ़ाइल में वर्तमान पथ मिलता है, लेकिन यह भी कमांड लाइन से काम करता है। Capturing the current directory from a batch file के बारे में अधिक जानकारी।

53

बस 7z a -tzip -r myzip.zip .\Relative\Dir\*

+4

। \ पूरी तरह से काम करता है! –

+0

उबंटू में यह है ./, धन्यवाद –

+0

हाँ, क्योंकि * निक्सेस स्लैश इस तरह होना चाहिए। –

1

, पथ से पहले एक बिंदु जोड़ने यानी यह मैं

सी की तरह फ़ोल्डर संरचना पर विचार करें के लिए काम किया: \ जनक \ सबफ़ोल्डर ..... और तुम parent.zip बनाना चाहते हैं पैरेंट फ़ोल्डर बिना जनक \ [यानी यह सब-फ़ोल्डरों के शुरू होगा .....]

cd /D "C:\Parent" 

"7z.exe" a Parent.zip "*.*" -r 

यह सी में Parent.zip पैदा करेगा: जनक

\ जो सभी फ़ाइलों और फ़ोल्डरों सी में शामिल होंगे
संबंधित मुद्दे