Inteligentně zkopírujte soubory & adresářů z terminálu Mac stejným způsobem
Obsah:
Většina dlouholetých uživatelů příkazového řádku se při kopírování souborů a adresářů spoléhá na příkaz cp, ale Mac OS X nabízí jiné řešení s příkazem „ditto“. Ditto je o něco pokročilejší, ale může být výhodné pro „cp“ z několika důvodů, protože zachovává nejen atributy vlastnictví a oprávnění, ale také větve prostředků souborů a metadata souborů a složek, což v podstatě zajišťuje přesné zkopírování souboru a/nebo složek.
Ditto lze navíc použít ke zkopírování souboru nebo složky do zdrojového adresáře, ale pokud tento zdroj ještě neexistuje, dtto jej automaticky vytvoří. Také pokud cílová složka existuje, zkopírovaný obsah bude sloučen dohromady v tomto cílovém adresáři. Konečně, totéž také následuje po symbolických odkazech, což je zvláště užitečné, pokud jste náročným uživatelem příkazu ln.
Abyste lépe porozuměli příkazu ditto, pojďme si projít několik příkladů se skutečnou syntaxí.
Používání Ditto ke kopírování souborů/složek
V nejjednodušší formě funguje podobně jako příkaz cp se základní syntaxí takto:
stejně jako zdrojový cíl
Pokud byste například chtěli zkopírovat ~/Desktop/FluffyBackups do /Volumes/FluffyBackups/, stačí napsat následující:
ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/
Opět zachováte všechny podrobnosti o vlastnictví a metadatech prostředků zkopírovaných souborů, což může být zvláště důležité, pokud kopírujete soubory z jednoho uživatelského adresáře do druhého, nebo pokud chcete zachovat něco jako časy úprav souborů.
Pokud si nejste jisti obsahem zdroje a cíle, můžete je vždy porovnat s příkazem comm nebo příkazem diff, než budete pokračovat příkazem ditto.
Použití Ditto ke sloučení obsahu adresářů a složek
Pamatujte si, že stejně zkontroluje, zda cíl již existuje, a pokud ano, sloučí adresáře zdroje s cílem. To je důležité a mimořádně užitečné, což z něj činí jeden z nejjednodušších způsobů, jak sloučit adresáře z příkazového řádku v systému Mac OS X (ačkoli je to nyní snadné i ve Finderu).
ditto ~/Pictures/Podzim 2015/ /Volumes/PhotoBackup/2015/
Tímto se převezmou všechny snímky z „podzim 2015“ a zkopírují se do již existujícího adresáře „2015“, čímž se obsah účinně sloučí ze zdroje do cíle. Opět platí, že ke slučovacímu chování dochází, když cíl již existuje, pokud cíl neexistuje, bude vytvořen tak, jak je zadáno, nebo jako název zdroje.
Pokud používáte ditto ke kopírování dat z adresářů se symbolickými odkazy, je použití parametru -V (verbose all) cenné, protože zobrazí každý soubor a symbolický odkaz, který byl zkopírován. Poznámka -V se liší od -v, které zobrazí pouze soubory jako výstup, nikoli symbolické odkazy.
Kopírovat bez metadat pomocí Ditto
Pokud z nějakého důvodu nechcete kopírovat metadata a větve zdrojů, můžete použít příznak –norsrc takto:
ditto -V --norsrc ~/Ukázka/Složka /Volumes/NoMetadataBackups
Použití příznaku –norsrc poráží primární výhodu toho samého, ale v některých případech může být užitečné.
Mnohem více o vynikajícím příkazu ditto se můžete dozvědět přečtením jeho manuálové stránky, která je dostupná v Mac OS X zadáním:
člověk stejně
Jako obvykle použijte klávesy se šipkami pro pohyb nahoru a dolů na stránce manuálu.
Než se na totéž budete silně spoléhat, nezapomeňte to několikrát vyzkoušet s nedůležitým přesouváním souborů a slučováním adresářů, abyste pochopili, jak to funguje při plánovaném použití.