คุณกำลังให้เส้นทางที่แน่นอนในรายการยกเว้นของคุณ
ด้วย rsync เส้นทางทั้งหมดยกเว้น (หรือรวม!) ที่ขึ้นต้นด้วย/
จะถูกยึดกับ " การถ่ายโอน "
/home/chris
รากของการถ่ายโอนในกรณีนี้คือ ถ้าคุณทำ:
rsync -Paz --exclude-from 'rsync-exclude.txt' / admin@192.168.1.65:
... ดังนั้นการยกเว้นของคุณควรใช้งานได้ (แต่คุณต้องการคัดลอกทุกอย่างในระบบไฟล์นั้น!)
แต่เนื่องจากคุณเพียงแค่พยายามที่จะซิงค์บ้านไดเรกทอรีและมีไดเรกทอรีย่อยของไม่มี/home/chris
ชื่อ"home/chris/Downloads"
, rsync
พบว่าไม่มีอะไรที่ตรงกับ
ดังนั้นให้ลองลบ/home/chris
ส่วนต่าง ๆ ออกจากrsync-exclude.txt
ไฟล์ของคุณ
ที่จริงแล้วคุณควรจะต้องมีบรรทัดเดียวในไฟล์:
/Downloads
โปรดทราบว่าหากคุณไม่ได้ระบุผู้นำรายการ/
และคุณมีชื่อไดเรกทอรีอื่นอยู่ไดเรกทอรี"Downloads"
เหล่านั้นจะถูกยกเว้นด้วย ฉันสมมติว่าคุณต้องการยกเว้น "ระดับบนสุดของคุณ" (เทียบกับไดเรกทอรีต้นทางอาคา "รากของการถ่ายโอน") ไดเรกทอรีดังนั้นคุณจะต้องการชั้นนำDownloads
/
วิธีที่ง่ายที่สุด (เพื่อยกเว้นเส้นทางเพียงไม่กี่เส้นทาง)
หากคุณต้องการยกเว้นเพียงไดเรกทอรีเดียวให้ทำเช่นนี้ (หลีกเลี่ยงไฟล์แยก):
rsync -Paz --exclude /Downloads /home/chris/ admin@192.168.1.65:LinuxHome
คุณสามารถเชื่อมโยง--exclude
แท็กด้วยกันได้เช่น:
rsync -Paz --exclude /Downloads --exclude '/Something Else' --exclude .hiddenFile /home/chris/ admin@192.168.1.65:LinuxHome
โปรดทราบว่าเนื่องจากไม่มีเครื่องหมายสแลชจึงจะแยก.hiddenFile
ออกจากทุกๆไดเรกทอรีที่คัดลอก!
แต่ถ้าคุณมีข้อยกเว้นมากกว่าสองสามข้อคุณจะดีกว่าด้วย--exclude-from
และมีไฟล์
บันทึก
ผมเห็นว่าคุณได้รับมันขวา แต่ผู้ที่ใหม่กับ rsync ควรทราบเฉือนที่สิ้นสุดของ/home/chris/
ในการอ้างถึงrsync
หน้าคน "คุณสามารถนึกถึงการลาก / บนแหล่งที่มาเป็นความหมาย 'คัดลอกเนื้อหาของไดเรกทอรีนี้' ซึ่งตรงข้ามกับ 'คัดลอกไดเรกทอรีตามชื่อ'."
ดังนั้นหากคุณทิ้งเครื่องหมายทับต่อท้ายคุณจะต้องจบลงด้วยไดเรกทอรีที่เรียกว่าchris
ภายในไดเรกทอรีเป้าหมายที่มีทุกอย่างจาก/home/chris
(ยกเว้นDownloads
ไดเรกทอรีดั้งเดิมแน่นอน!)