rsync
กฎตัวกรองทั่วโลกเริ่มต้นด้วยการนำ/
จะยึดกับรากของการถ่ายโอน การอ้างถึงจากส่วน "รวมถึง / ยกเว้นกฎรูปแบบ" ของหน้าคน:
หากรูปแบบเริ่มต้นด้วย / แล้วมันจะยึดกับจุดเฉพาะในลำดับชั้นของไฟล์มิฉะนั้นจะจับคู่กับจุดสิ้นสุดของชื่อพา ธ สิ่งนี้คล้ายกับ ^ ที่นำหน้าในนิพจน์ทั่วไป ดังนั้น "/ foo" จะตรงกับชื่อของ "foo" ที่ "root ของการถ่ายโอน" (สำหรับกฎสากล) หรือในไดเรกทอรีของไฟล์ผสาน (สำหรับกฎต่อไดเรกทอรี)
ในคำสั่งของคุณ ( rsync ... -arv /home/ben home-ben/
) ไฟล์ที่ได้จะถูกโอนไปยัง/home/ben/foo
home-ben/ben/foo
รากของการถ่ายโอนและเส้นทางกรองที่ถูกต้องคือhome-ben
/ben/foo
ดังนั้น,
- เพื่อให้ตรงกับที่
/home/ben/.ccache
คุณต้องการเส้นทางตัวกรองของ/ben/.ccache
- เพื่อให้ตรงกับที่
/home/ben/build/
คุณต้องการเส้นทางตัวกรองของ/ben/build/
คำอธิบายรายละเอียดเพิ่มเติมสามารถพบได้ใน "ทอดสมอรวม / ไม่รวมรูปแบบ" ของหน้าคนrsync(1)
โปรดทราบว่าการลาออกจากผู้นำ/
ไม่จำเป็นต้องเป็นสิ่งที่คุณต้องการ การอ้างอิงอีกครั้งจากส่วนหน้าคนเดียวกัน:
"foo" ที่ไม่มีเงื่อนไขจะตรงกับชื่อของ "foo" ที่ใดก็ได้ในทรีเนื่องจากอัลกอริทึมนั้นถูกนำมาใช้ซ้ำจากบนลงล่าง มันจะทำงานราวกับว่าแต่ละองค์ประกอบของเส้นทางได้รับการเปลี่ยนเป็นจุดสิ้นสุดของชื่อไฟล์ แม้แต่การย่อย "foo / foo" ที่ยังไม่ได้เก็บจะตรงกับจุดใด ๆ ในลำดับชั้นที่พบ "foo" ในไดเรกทอรีชื่อ "sub" ดูส่วนที่เกี่ยวกับ ANCHORING INCLUDE / EXCLUDE PATTERNS เพื่อดูวิธีการระบุรูปแบบที่ตรงกับรากของการถ่ายโอน
ดังนั้นรูปแบบของตัวกรองbuild/
จะตรงกับที่ใดก็ได้สร้างไดเรกทอรีแม้/home/ben
/home/ben/many/sub/directories/build/