Kopírování adresářů v systému Linux je velkou součástí rutiny každého správce systému.
Pokud pracujete s Linuxem již nějakou dobu, víte, jak důležité je udržovat vaše složky dobře strukturované.
V některých případech může být nutné zkopírovat některé adresáře v systému za účelem přepracování vaší hlavní struktury souborového systému.
V tomto tutoriálu se podíváme, jak můžete snadno kopírovat adresáře a složky v systému Linux pomocí příkazu cp.
Kopírování adresářů v systému Linux
Chcete-li zkopírovat adresář v systému Linux, musíte provést příkaz „cp“ s volbou „-R“ pro rekurzivní a zadat zdrojový a cílový adresář, který se má zkopírovat.
$ cp -R <source_folder> <destination_folder>
Řekněme například, že chcete zkopírovat adresář „/etc“ do záložní složky s názvem „/etc_backup“.
Složka „/etc_backup“ se také nachází v kořenovém adresáři vašeho souborového systému.
Chcete-li zkopírovat adresář „/etc“ do této záložní složky, spustili byste následující příkaz
$ cp -R /etc /etc_backup
Provedením tohoto příkazu se složka „/etc“ zkopíruje do „/etc_backup“, výsledkem je následující složka.
Skvělé, úspěšně jste zkopírovali jednu složku v jiné složce v systému Linux.
Ale co kdybyste chtěli zkopírovat obsah adresáře rekurzivně pomocí příkazu cp?
Rekurzivně kopírovat obsah adresáře v systému Linux
Chcete-li zkopírovat obsah adresáře rekurzivně, musíte použít příkaz „cp“ s volbou „-R“ a zadat zdrojový adresář následovaný zástupným znakem.
$ cp -R <source_folder>/* <destination_folder>
Vzhledem k našemu předchozímu příkladu řekněme, že chceme zkopírovat obsah adresáře „/etc“ do složky „/etc_backup“.
Abychom toho dosáhli, napsali bychom následující příkaz
$ cp -R /etc/* /etc_backup
Při výpisu obsahu záložní složky zjistíte, že nebyla zkopírována složka samotná, ale její obsah ano.
$ ls -l /etc_backup
Skvělé, zkopírovali jste obsah adresáře „/etc“ přímo do záložní složky!
Kopírování více adresářů pomocí cp
Chcete-li v systému Linux zkopírovat více adresářů, musíte použít příkaz „cp“ a uvést různé adresáře, které se mají zkopírovat, a také cílovou složku.
$ cp -R <source_folder_1> <source_folder_2> ... <source_folder_n> <destination_folder>
Řekněme například, že chceme zkopírovat adresář „/etc“ a také všechny domovské adresáře umístěné v adresáři „/home“.
Abychom toho dosáhli, spustili bychom následující příkaz
$ cp -R /etc/* /home/* /backup_folder
Gratulujeme, úspěšně jste zkopírovali více adresářů pomocí příkazu cp v systému Linux!
Kopírovat adresáře na vzdálené hostitele
V některých případech můžete chtít zkopírovat adresář, abyste si uchovali zálohu na záložním serveru.
Netřeba dodávat, že váš záložní server je lokálně vzdálený:musíte zkopírovat svůj adresář přes síť.
Kopírování pomocí rsync
Chcete-li zkopírovat adresáře do vzdálených umístění, musíte použít příkaz rsync, zadat zdrojovou složku a také vzdálený cíl, do kterého se mají kopírovat.
Nezapomeňte zahrnout možnost „-r“ pro „rekurzivní“ a možnost „-a“ pro „vše“ (jinak budou neběžné soubory přeskočeny)
$ rsync -ar <source_folder> <destination_user>@<destination_host>:<path>
Pokud na vašem serveru není nainstalován nástroj „rsync“, ujistěte se, že jej nainstalujete pomocí práv sudo.
$ sudo apt-get install rsync
$ sudo yum install rsync
Řekněme například, že potřebujeme zkopírovat složku „/etc“ na záložní server na adrese 192.168.178.35/24.
Chceme zkopírovat adresář do „/etc_backup“ vzdáleného serveru s uživatelským jménem „devconnected“.
Abychom toho dosáhli, spustili bychom následující příkaz
$ rsync -ar /etc [email protected]:/etc_backup
Poznámka:Již jsme napsali průvodce o přenosu souborů a složek po síti, pokud o tom potřebujete rozsáhlého průvodce.
Podobně se můžete rozhodnout zkopírovat obsah adresáře „/etc/ spíše než samotný adresář přidáním zástupného znaku za adresář, který se má zkopírovat.
$ rsync -ar /etc/* [email protected]:/etc_backup/
A konečně, pokud chcete při provádění zálohy adresáře uvést aktuální datum, můžete použít náhradu parametrů Bash.
$ rsync -ar /etc/* [email protected]:/etc_backup/etc_$(date "+%F")
Poznámka :Pokud hledáte návod na nastavení dat v Linuxu, na webu o tom máme průvodce.
Kopírování pomocí scp
Chcete-li zkopírovat adresář v systému Linux do vzdáleného umístění, můžete provést příkaz „scp“ s volbou „-r“ pro rekurzivní zpracování, za nímž následuje adresář, který se má zkopírovat, a cílová složka.
$ scp -r <source_folder> <destination_user>@<destination_host>:<path>
Řekněme například, že chceme zkopírovat adresář „/etc“ na záložní server umístěný na adrese 192.168.178.35 ve složce „/etc_backup“.
Abyste toho dosáhli, spustili byste následující příkaz
$ scp -r /etc [email protected]:/etc_backup/
Blahopřejeme, úspěšně jste zkopírovali celý adresář pomocí příkazu scp.
Velmi podobně jako u příkazu rsync se můžete rozhodnout použít substituci parametru Bash ke zkopírování vašeho adresáře do vlastního adresáře na vašem serveru.
$ scp -r /etc [email protected]:/etc_backup/etc_$(date "+%F")
Závěr
V tomto tutoriálu jste se naučili, jak můžete snadno kopírovat adresáře v systému Linux , ať už se rozhodnete to provést lokálně nebo vzdáleně.
Většinu času se kopírování adresářů provádí za účelem zálohy důležitých složek v systému :jmenovitě protokoly /etc, /home nebo Linux.
Pokud vás zajímá Správa systému Linux , máme na webu kompletní sekci věnovanou tomu, takže se na to určitě podívejte!