rsync đệ quy với độ sâu nhất định của các thư mục con


17

Tôi muốn rsyncmột thư mục đệ quy nhưng muốn các thư mục con chỉ được bao gồm ở một độ sâu nhất định.

Ví dụ: tôi muốn có độ sâu 1,2,3 hoặc 4 thư mục con như thế này:

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

Câu trả lời:


26

Tạo điều kiện cho các --exclude=tùy chọn.

Để đồng bộ hóa với độ sâu 2 (tệp trong thư mục và thư mục con):

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

Nó sẽ cung cấp cho bạn điều này:

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

Để đồng bộ hóa với độ sâu 3 (tệp trong thư mục, thư mục con và thư mục con):

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

sẽ cung cấp cho bạn:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.