मैं समस्या को हल करता हूं tar
और पाइप-पारदर्शिता के साथ समस्या का समाधान करता हूं ssh
। एक उदाहरण नीचे देखा जा सकता है, दूरस्थ पीसी का नाम है bar
। परीक्षण से पहले, मैंने /tmp/foo
निष्पादित करके तीन खाली फाइलें बनाईं ssh bar 'mkdir /tmp/foo ; touch /tmp/foo/{a,b,c}'
।
$ ssh bar 'cd /tmp/foo ; ls | sort -r | tar -cT -' | tar -xv
c
b
a
$ ls -l a b c
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 a
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 b
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 c
इसके -T
ध्वज को tar
अगले पैरामीटर से पैक करने के लिए फ़ाइलनाम पढ़ा जाता है, और -
इसका मतलब है कि मानक इनपुट। अब आपको बस फाइलों के नाम को उसमें डालना होगा, जो कि ls
(उदाहरण के अनुसार) या find
पेचीदा कार्यों के लिए आ सकते हैं । इस सेटअप के साथ, आप sort
सटीक ऑर्डर को इंगित करने के लिए उपयोग कर सकते हैं कि फाइलें एसएसएच के माध्यम से प्रेषित की जाएंगी (इस मामले में, -r
रिवर्स अल्फाबेटिक ऑर्डर में सॉर्ट की गई फाइलें)। -v
केवल अंतिम में जोड़ा जाता है खोल, tar
तो यह है कि आदेश दिख रहा है।