मैं एक अलग गंतव्य निर्देशिका के लिए बंदूक कैसे करूं?


80

मैं करंट गेन के अलावा किसी डेस्टिनेशन डायरेक्टरी को कैसे गनज़िप कर सकता हूँ?

यह काम नहीं किया:

gunzip *.gz /putthemhere/

जवाबों:


104

gunzipमानक आउटपुट में आउटपुट के लिए कहें और उस निर्देशिका में एक फ़ाइल पर रीडायरेक्ट करें:

gunzip -c file.gz > /THERE/file

zcatके लिए एक शॉर्टकट है gunzip -c

यदि आप सभी फ़ाइलों पर कई फ़ाइलों को पुन: चलाना चाहते हैं:

for f in *.gz; do
  STEM=$(basename "${f}" .gz)
  gunzip -c "${f}" > /THERE/"${STEM}"
done

(यहाँ basenameएक्सटेंशन के बिना फ़ाइलनाम का हिस्सा प्राप्त करने के लिए उपयोग किया जाता है)


3
फ़ाइल बनाता है, लेकिन फ़ाइल स्वामित्व, अनुमतियां आदि को संरक्षित नहीं करता है जो आपकी सटीक स्थिति के आधार पर अच्छा या बुरा हो सकता है।
क्रिस जॉनसन

2

यदि आपको किसी एकल फ़ाइल को निकालने और रूट-स्वामित्व वाली निर्देशिका में लिखने की आवश्यकता है , तो उपयोग करें sudo dd:

zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null

यदि फ़ाइल दूरस्थ स्रोत (जैसे, ssh, कर्ल https, आदि) से आ रही है, तो आप इसे इस तरह से कर सकते हैं:

ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null

(ध्यान दें कि ये उदाहरण केवल एक फ़ाइल के लिए काम करते हैं , उदाहरण * .gz के विपरीत, जो निर्देशिका में सभी gzipped फ़ाइलें हैं।)


रूट विशेषाधिकारों के साथ लिखने के लिए, sudo tee $filename >/dev/nullउपयोग करने की तुलना में थोड़ा अधिक मुहावरेदार है dd
डीसी १। ’

1

आप अपने इच्छित स्थान पर परिणाम को पुनर्निर्देशित करने के लिए> के साथ प्रयास कर सकते हैं।

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