नेटवर्क के माध्यम से टार संग्रह और पाइप से कुछ सदस्यों को निकालें


9

संपादित करें: मैं अतिरिक्त करना चाहते हैं member01और member02और निर्देशिकाblah/

tarball_1.tar.gztest/20 फ़ाइलों के साथ निर्देशिका है । मैं केवल सदस्य test/member01और test/member02निर्देशिका को निकालना चाहता हूं blah/और उन्हें ssh / scp का उपयोग करके दूसरे "Remote_host" पर कॉपी करना चाहता हूं ।

क्या इसे वन-लाइनर के रूप में किया जा सकता है? मैं का उपयोग कर विचार tar, paxया cpioलेकिन मुझे लगता है कि मैं बहुत अभी तक इन उपयोगिताओं के साथ दक्ष नहीं कर रहा हूँ।

जवाबों:


15
tar -xzOf file.tar.gz file_you_want_to_extract | ssh user@host 'cat > /path/to/destination_file'
  • -x : निकालें
  • -z : के माध्यम से gzip
  • -f : इनपुट के रूप में एक फ़ाइल में ले लो।
  • -O : स्टडआउट के लिए निकालें

file_you_want_to_extractसे निकाला जाता है file.tar.gzमानक आउटपुट में, में पहुंचाया sshहै, जो चलाता catदूरस्थ होस्ट पर और दूरदराज के अपने मानक लिखते हैं destination_file। बेशक, आप यह सुनिश्चित करना चाहेंगे कि आपको दूरस्थ होस्ट पर अपनी इच्छित गंतव्य फ़ाइल की अनुमति लिखना है।


मैं अपनी मूल पोस्टिंग में स्पष्ट नहीं था :) मुझे एक से अधिक सदस्य, और एक निर्देशिका निकालने की आवश्यकता है।
फेलिप अल्वारेज़

tar -xz0f होना चाहिए: fसंग्रह नाम आने के बाद
फेलिप अल्वारेज़

1
यदि आप चाहते हैं कि उन्हें एक-लाइनर बनना है, तो कई सदस्यों को निकालने से गड़बड़ हो जाएगी, क्योंकि कई फ़ाइलों को stdout में निकालने से कोई मतलब नहीं है। आपको संभवतः tarहर एक के लिए निकलना होगा जिसे आप निकालना चाहते हैं, फिर scp -r member1 member2 blah user@host:/destination/folder/उन्हें कॉपी करने के लिए उपयोग करें। यदि आप वास्तव में इसे एक-पंक्ति बनाना चाहते हैं, तो आप उन सभी आदेशों को संक्षिप्त कर सकते हैं &&। एक अधिक व्यावहारिक विकल्प केवल एक स्क्रिप्ट बनाना है और साथ ही कमांड-लाइन विकल्पों के माध्यम से पुनरावृत्ति करना और tarप्रत्येक के लिए निष्पादित करना और फिर scpउन सभी को अंत में करना है।
एतनामिर

आह, मैं देख रहा हूँ। तो कोई "आसान" वन-लाइनर विधि नहीं है। धन्यवाद :-)
फेलिप अल्वारेज़

2
वैकल्पिक रूप से, यदि "वन-लाइनर" "कितना समय लेता है" की तुलना में अधिक महत्वपूर्ण है, तो आप ssh के माध्यम से पूरे संग्रह को पाइप कर सकते हैं और उन सदस्यों को निकाल सकते हैं जिन्हें आप दूसरी तरफ चाहते हैं "cat file.tar.gz | ssh user @ host ' tar zxvf file1 file2 dir1 '
कॉलिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.