Мені було цікаво, чи є якийсь метод синхронізації, який не копіює файли, якщо вони вже знаходяться в папці призначення.
Дозволь пояснити:
Я зробив кілька фотографій і помістив їх у папку на моєму ноутбуці. Щоб підтримати їх на моєму сервері Ubuntu, я просто побіг rsync -vrutP source des/ti/na/tion/
.
Тоді я вирішив помістити всі RAW в підпапку на моєму ноутбуці ( source/RAW
) і JPG-файли в іншій підпапці ( source/JPG
).
Тепер, якщо я хочу віддзеркалити це на сервер, я повинен запустити rsync -vrutP --delete source/ des/ti/na/tion/
але якщо я роблю це, я отримую всі мої файли, видалені з сервера, а потім знову скопіювати з ноутбука на сервер. У мене є кілька ГБ зображень, і це не проблема, якщо є час чекати і Ethernet з'єднання, а не WiFi.
Але чи не буде це набагато швидше, навіть якщо вимагатиме набагато більше процесора, якщо існує команда, яка порівнювала б файли в кореневій папці "джерело" і застосовувала лише відмінності позицій між джерелом і місцем призначення? Більше процесора буде задіяний, щоб перерахувати всі файли, але мені не потрібно майже ніякої пропускної здатності для передачі файлів, які мені дійсно не потрібно передавати, тому що вони вже знаходяться в місці призначення, якщо це відбувається в іншому місці. Звичайно, необхідною функціональністю буде дельта-синхронізація, яка також виявляє, якщо існуючі (але переміщені) файли точно такі ж, як і у вихідній теці.
Я знаю про програмне забезпечення, що робить це (Syncovery, Goodsync), але я дійсно хотів знати, чи є якась команда, що робить це на Linux і Windows.
rsync -n
покаже вам, які операції будуть зроблені.