ฉัน whould แก้ปัญหาด้วยและท่อความโปร่งใสของ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
เพื่อระบุลำดับที่แน่นอนว่าไฟล์จะถูกส่งผ่าน SSH (ในกรณีนี้-r
ไฟล์ที่เรียงลำดับตามตัวอักษรแบบย้อนกลับ) คำสั่ง-v
นี้จะถูกเพิ่มเข้าไปในขั้นตอนสุดท้ายไม่เปิดหีบห่อtar
เพื่อให้สามารถเห็นคำสั่งซื้อได้