ฉันใช้คำร้องขอ rsync นี้เพื่อสำรองข้อมูลไดเรกทอรีบ้านของฉัน:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
rsync man page บอกว่า -a หมายถึง -g และ -o (ระหว่างสวิตช์อื่น ๆ ) ซึ่งควรรักษาความเป็นเจ้าของ อย่างไรก็ตามฉันสังเกตเห็นว่าหากไม่มีไดเรกทอรีภายใต้$BACKUP_MNTPOINT/$USER_HOMEมันจะถูกสร้างขึ้นด้วย root: ความเป็นเจ้าของ root แทนที่จะเป็นไดเรกทอรีที่ถูกต้อง (สิ่งนี้จะเกิดขึ้นกับไดเรกทอรีที่อยู่ด้านล่าง$BACKUP_MNTPOINT/$USER_HOME) ทำไมถึงเป็นอย่างนั้น?
$BACKUP_MNTPOINTเป็นไดรฟ์ที่ติดตั้ง localy $BACKUP_MNTPOINT/$USER_HOMEมีกรรมสิทธิ์และสิทธิ์ที่เหมาะสม ไม่ได้$USER_HOMEหรือ$BACKUP_MNTPOINTลงท้ายด้วยเครื่องหมายทับ
ทั้งซอร์สและระบบไฟล์เป้าหมายคือ XFS และการรันmkdir $BACKUP_MNTPOINT/$USER_HOMEจะสร้างไดเร็กทอรีที่มีความเป็นเจ้าของที่คาดไว้
/homeและไดรฟ์สำรอง จนถึงตอนนี้ฉันคิดว่ามันเกิดขึ้นเฉพาะกับไดเรกทอรีหลัก ไม่ได้$BACKUP_MNTPOINTหรือ$USER_HOMEลงท้ายด้วยเครื่องหมายทับ แก้ไข:ฉันสามารถยืนยันตอนนี้มันเกิดขึ้นกับไดเรกทอรีด้านล่างเท่านั้น$BACKUP_MNTPOINT/$USER_HOME
mkdir $BACKUP_MNTPOINT/$USER_HOME/fooสร้างไดเรกทอรีด้วยกรรมสิทธิ์ของผู้ใช้
strace(ตามที่ระบุไว้ในคำตอบหลอก)
$BACKUP_MNTPOINTและมีตัวเลือกอะไรติดตั้งอยู่บ้าง สิ่งนี้เกิดขึ้นเฉพาะกับ$BACKUP_MNTPOINT/$USER_HOMEไดเรกทอรีparent ( ) หรือสำหรับทุกไดเรกทอรีที่สร้างขึ้นหรือไม่ ทำ$BACKUP_MNTPOINTและ$USER_HOMEจบด้วย a/หรือไม่?