linux - ज़िप बनाएं-निर्देशिका संरचना को अनदेखा करें




zip (5)

tar मेरे लिए कोई काम नहीं करता है।

tar -czpvf filename.zip -C path/to/directory/folder .

जब मैं इस filename.zip को अनजिप करने का प्रयास करता हूं तो मुझे एक त्रुटि मिलती है

अंत-केंद्रीय-निर्देशिका हस्ताक्षर नहीं मिला।

जार ठीक काम करता है।

jar cvf filename.zip -C path/to/directory/folder .

मुझे कमांड का उपयोग करके ज़िप बनाने की आवश्यकता है

zip /dir/to/file/newZip /data/to/zip/data.txt

यह काम करता है, लेकिन बनाई गई ज़िप फ़ाइल निर्देशिका को नकली फ़ाइल में नकल करने वाली निर्देशिका संरचना बनाता है। यह बहुत सारे अतिरिक्त फ़ोल्डर्स हैं जिनकी मुझे आवश्यकता नहीं है।

मुझे मैन पेज या Google शिकार पर एक कर्सर नज़र में कोई जवाब नहीं मिला।


आप -j उपयोग कर सकते हैं।

-j
--junk-paths
          Store just the name of a saved file (junk the path), and do  not
          store  directory names. By default, zip will store the full path
          (relative to the current directory).

फ़ाइल और निर्देशिका संरचनाओं को हटाने के लिए बस -jrm विकल्प का उपयोग करें

zip -jrm /path/to/file.zip /path/to/file

वैकल्पिक रूप से, आप अपनी फ़ाइल के लिए एक अस्थायी प्रतीकात्मक लिंक बना सकते हैं:

ln -s /data/to/zip/data.txt data.txt
zip /dir/to/file/newZip !$
rm !$

यह एक निर्देशिका के लिए भी काम करता है।


-j विकल्प के साथ -j का उपयोग नहीं करेगा।
तो इसके लिए काम-आसपास यह हो सकता है:

cd path/to/parent/dir/;
zip -r complete/path/to/name.zip ./* ;
cd -;

या इन-लाइन संस्करण

cd path/to/parent/dir/ && zip -r complete/path/to/name.zip ./* && cd -

यदि आप cd - आउटपुट स्क्रीन पर दिखाना नहीं चाहते हैं तो आप आउटपुट को /dev/null निर्देशित कर सकते हैं





zip