Rsync สองประเภทไฟล์ในคำสั่งเดียว?


13

วิธีการเขียนลงในหนึ่งบรรทัดโดยไม่ต้องทำซ้ำเส้นทางเดียวกัน

rsync -a root@somewhere:/folder/remote/*.txt .
rsync -a root@somewhere:/folder/remote/*.jpg .

คำตอบ:


18

ฉันจะเขียนแบบนี้:

rsync -a root@somewhere:/folder/remote/*.{txt,jpg} .

7
นี่เป็นเทคนิคทั่วไปที่คุณสามารถใช้กับคำสั่งใด ๆ เชลล์จะทำซ้ำอาร์กิวเมนต์โดยแทนที่นิพจน์วงเล็บปีกกาด้วยแต่ละรายการในรายการ มันเรียกว่าการถอนปีกกา
Shawn J. Goff

11
rsync -a --include='*.txt' --include='*.jpg' --exclude='*' root@somewhere:/folder/remote/ .

(หมายเหตุว่าสุดท้าย/ใน/folder/remote/และตำแหน่งของ--exclude='*'หลังรวมถึงกฎระเบียบที่มีความสำคัญ.) ในเปลือกหอยที่สนับสนุนการขยายตัวรั้ง (เช่นทุบตี ksh, zsh):

rsync -a --include='*.'{txt,jpg} --exclude='*' root@somewhere:/folder/remote/ .

เพิ่ม--include='*/' --prune-empty-dirsถ้าคุณต้องการคัดลอกไฟล์ในไดเรกทอรีย่อยเช่นกัน


rsync 3 * ดูเหมือนว่าจะล้มเหลวใน * wildcards, include | แยกทำงานได้ดีแม้ว่า
briankip
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.