ฉันกำลังพยายามสำรองไฟล์บางไฟล์ในไดรฟ์อื่นโดยใช้ รีซิงค์
.
ในกรณีทดสอบ ฉันกำลังลองใช้คำสั่งต่อไปนี้:
rsync -Rav --delete --stats /home/my_user/bin* "$dest"
คำสั่งนี้จะคัดลอกไฟล์และไดเร็กทอรี (ที่มีเนื้อหา) อยู่ใน my $บ้าน
ไดเรกทอรีและมีชื่อเช่น ~/ถังขยะ
, ~/บินบ
, ~/bin1
, ~/bin2
ฯลฯ ถึงที่หมาย.
อย่างไรก็ตาม เมื่อฉันลบไฟล์หรือไดเร็กทอรีที่เรียกว่า ~/bin1
หรือ ~/bin2
ตัวอย่างเช่น สิ่งเหล่านี้จะไม่ถูกลบในปลายทางด้วย สิ่งเดียวที่ใช้ได้คือเมื่อมีไฟล์ในไดเร็กทอรีพูดว่า ~/bin2/file1
และไฟล์นี้ถูกลบ จากนั้นไฟล์นี้จะถูกลบในปลายทางด้วย (แต่ไม่ใช่ในกรณีที่ไดเร็กทอรี ~/bin2/
ถูกลบออกไปหมด)
เห็นได้ชัดว่าปัญหานี้เกิดจากการขยายตัวของเชลล์ /home/my_user/bin*
ไปยังชื่อไฟล์และไดเร็กทอรีทั้งหมดที่ขึ้นต้นด้วย ถัง
ในของฉัน $บ้าน
ไดเร็กทอรี ณ เวลานั้น รีซิงค์
คำสั่งถูกดำเนินการ ดังนั้นฉันจึงพยายามอ้างแหล่งที่มาเช่น "/โฮม/my_user/bin*"
แต่ในกรณีนี้ ฉันได้รับข้อผิดพลาด:
rsync: [ผู้ส่ง] link_stat "/home/my_user/bin*" ล้มเหลว: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว (2)
จำเป็นต้องใช้ตัวเลือกใดบ้าง ดังนั้นฉันสามารถใช้สัญลักษณ์แทนสำหรับต้นทางและฉันจะมีแบบจำลองที่ถูกต้องของไฟล์ต้นทางและโครงสร้างไดเร็กทอรีในปลายทางด้วย
บันทึก: rsync เวอร์ชัน 3.2.3 โปรโตคอลเวอร์ชัน 31