rsync ซ้ำกับความลึกของโฟลเดอร์ย่อย


17

ฉันต้องการrsyncโฟลเดอร์ซ้ำ แต่ต้องการให้โฟลเดอร์ย่อยรวมอยู่ในระดับความลึกที่แน่นอน

ตัวอย่างเช่นฉันต้องการความลึกของ 1,2,3 หรือ 4 โฟลเดอร์ย่อยเช่นนี้

source/
├── subfolder 1
   ├── subsubfolder
      ├── subsubsubfolder
         └── wanted with depth 4.txt
      └── wanted with depth 3.txt
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt

คำตอบ:


26

อำนวยความสะดวกใน--exclude=ตัวเลือก

วิธีซิงค์กับความลึก 2 (ไฟล์ภายในโฟลเดอร์และโฟลเดอร์ย่อย):

rsync -r --exclude="/*/*/" source/ target/

มันจะให้สิ่งนี้กับคุณ:

target/
├── subfolder 1
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt

วิธีซิงค์กับความลึก 3 (ไฟล์ภายในโฟลเดอร์โฟลเดอร์ย่อยและโฟลเดอร์ย่อย):

rsync -r --exclude="/*/*/*/" source/ target/

จะให้คุณ:

target/
├── subfolder 1
   ├── subsubfolder
      └── wanted with depth 3.txt
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.