Po migraci na Linux z Windows bych rád našel alternativní software k Winmerge nebo se spíše naučil nástroje příkazového řádku pro porovnání a synchronizaci dvou složek v Linuxu. Byl bych vám vděčný, kdybyste mi řekli, jak provést následující úkoly na příkazovém řádku... (Studoval jsem diff a rsync, ale stále potřebuji pomoc.)
Máme dvě složky:„/home/user/A“ a „/home/user/B“
Složka A je místo, kam se ukládají běžné soubory a složky, a složka B je záložní složka, která slouží jako kompletní zrcadlo složky A. (Ve složce B není nic přímo uloženo ani upraveno uživatelem.)
Moje otázky jsou:
-
Jak vypsat soubory, které existují pouze ve složce B? (Např. ty smazané ze složky A od poslední synchronizace.)
-
Jak zkopírovat soubory, které existují pouze ve složce B, zpět do složky A?
-
Jak vypsat soubory, které existují v obou složkách, ale mají různá časová razítka nebo velikosti? (Ty, které byly změněny ve složce A od poslední synronizace. Rád bych se vyhnul používání kontrolních součtů, protože existují desítky tisíc souborů a proces by byl příliš pomalý.)
-
Jak vytvořit přesnou kopii složky A do složky B? Chci říct, zkopírujte vše ze složky A do složky B, která existuje pouze ve složce A, a smažte vše ze složky B, která existuje pouze ve složce B, ale aniž byste se dotkli souborů, které jsou v obou složkách stejné.
Přijatá odpověď:
Tím se složka A umístí do složky B:
rsync -avu --delete "/home/user/A" "/home/user/B"
Pokud chcete obsah složek A a B aby to bylo stejné, vložte /home/user/A/
(s lomítkem) jako zdroj. Tím se nevezme složka A, ale veškerý její obsah a vloží se do složky B. Takto:
rsync -avu --delete "/home/user/A/" "/home/user/B"
-a
Proveďte synchronizaci se zachováním všech atributů souborového systému-v
běžet podrobně-u
kopírujte pouze soubory s novějším časem úpravy (nebo rozdílem velikosti, pokud jsou časy stejné)--delete
odstranit soubory v cílové složce, které ve zdroji neexistují
Manpage:https://download.samba.org/pub/rsync/rsync.html