Mỗi this question+answer, bạn có thể viết mã này làm đường ống. Các đường ống là một phần không thể thiếu trong lập trình shell và kịch bản lệnh shell.
find /path/to/files -type l -print | \
rsync -av --files-from=- /path/to/files [email protected]:/path
Điều gì đang xảy ra ở đây?
Lệnh find
bắt đầu tại/path/to/files và các bước đệ quy thông qua mọi thứ "trong" điểm đó. Các tùy chọn để find
là các điều kiện giới hạn những gì được xuất theo tùy chọn -print
. Trong trường hợp này, chỉ những thứ của -type l
(liên kết tượng trưng, theo số man find
) sẽ được in để tìm ra "tiêu chuẩn đầu ra".
Các tệp này trở thành "đầu vào chuẩn" của tùy chọn --file-from
của lệnh rsync
.
Tặng thử. Tôi đã không thực sự thử nghiệm này, nhưng có vẻ như với tôi rằng nó sẽ làm việc.
cảm ơn tôi sẽ thử ... – Newbiee
Điều này sẽ không sao chép các liên kết tượng trưng dưới dạng liên kết tượng trưng. – Dan
@Dan ... Vâng, '-a' chuyển thành' -rlptgoD' và '-l' được ghi thành", khi liên kết tượng trưng gặp phải, hãy tạo lại liên kết tượng trưng trên đích. " Bạn đã gặp phải kết quả gì? – ghoti