ใช้ rsync เพื่อคัดลอกไฟล์ทั้งหมดยกเว้นชื่อไฟล์ที่แน่นอนที่มีนามสกุลที่แน่นอน


28

ฉันมีแฟลชการ์ดขนาดเท่ากันสองใบและฉันต้องการคัดลอกเนื้อหาของการ์ดหนึ่งไปยังการ์ดอื่นตามกฎต่อไปนี้:

  1. ฉันต้องการไดเรกทอรีและไดเรกทอรีย่อยทั้งหมดในสถานที่
  2. ฉันต้องการยกเว้นไฟล์ประเภท. FOO, .BAR และ. ZIM (ไฟล์อื่นทั้งหมดจะถูกคัดลอก)
  3. โบนัส:มันจะเจ๋งถ้ามันออกชื่อไฟล์เมื่อมันถูกคัดลอกเพราะมันจะถูกคัดลอกข้อมูล ~ 8 GB

สิ่งนี้สามารถทำได้ด้วย "ค้นหา" อย่างใด?

คำตอบ:


41

สิ่งนี้จะง่ายขึ้นอย่างมากเมื่อใช้rsyncด้วย--excludeสวิตช์

rsync -av --exclude='*.FOO' --exclude='*.BAR' --exclude='*.ZIM' /source /dest

-vสวิทช์จะให้ผล verbose ไฟล์ที่มีการทำข้อมูลให้ตรงกัน


ติดตามเล็กน้อยที่นี่: การคัดลอกเสร็จแล้วและ / src / * อยู่ใน / dest / src / * วิธีใช้ rsync เพื่อรับ / src / * ใน / dest / *?
macek

ลอง/source/ /dest
John T

มันใช้งานไม่ได้ ฉันยังคงเห็นไฟล์ * .FOO ถูกคัดลอกไป
เจค

--excludeมันมีการระบุวิธีการที่คุณควรจะให้เส้นทางสำหรับ หากคุณมีปัญหาลองดูคำตอบนี้
totymedli

0

หากคุณมีส่วนขยายจำนวนมากที่ต้องการแยกคุณสามารถสร้างไฟล์และจดบันทึกส่วนขยายหรือไฟล์ทั้งหมดเพื่อแยกและใช้ตัวเลือกยกเว้นเพียงตัวเลือกเดียวเพื่อให้ง่าย

rsync -ravz --exclude = '. / abc, txt' / source / ปลายทาง

เป็นการดีเสมอที่จะใช้ z สำหรับการบีบอัดและตัวเลือก r หากคุณต้องคัดลอกซ้ำ

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