ฉันกำลังพยายามสำรองไฟล์บางไฟล์ในไดรฟ์อื่นโดยใช้ รีซิงค์.
ในกรณีทดสอบ ฉันกำลังลองใช้คำสั่งต่อไปนี้:
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