GNU/Linux >> Znalost Linux >  >> Linux

Jak vyloučit konkrétní adresáře z kopírování v Linuxu

Před chvílí jsme diskutovali o tom, jak vyloučit soubory určité velikosti z kopírování pomocí rsync v systémech podobných Unixu. Tato metoda nám pomohla vyloučit velké soubory nebo méně důležité soubory, abychom proces kopírování dokončili co nejdříve. Zbývající soubory tedy můžeme zkopírovat později, až budeme mít volný čas. Dnes se v tomto stručném návodu podíváme, jak vyloučit konkrétní adresáře z kopírování pomocí Rsync a cp příkazy v Linuxu.

Vyloučení konkrétních adresářů z kopírování v Linuxu

Tento úkol může být proveden mnoha způsoby. Jsem si vědom následujících dvou metod.

Metoda 1 – pomocí rsync příkaz

Jak již možná víte, Rsync je rychlý a všestranný nástroj ke kopírování souborů a složek lokálně nebo na/z jiného hostitele přes jakýkoli vzdálený shell nebo do/ze vzdáleného démona rsync. Rsync má spoustu užitečných možností. Jednou z užitečných možností je --exclude . Pomocí vyloučit možnost, můžeme vyloučit určité soubory/adresáře z kopírování. Podívejme se na příkladu, jak to udělat.

Řekněme, že máte složku s názvem ostechnix . Uvnitř adresáře ostechnix jsou tři podadresáře, jmenovitě dir1adresář2 a dir3 .

$ ls ostechnix/
dir1 dir2 dir3

Chcete zkopírovat dir1 a dir3 do jiného umístění, ale ne do dir2 . Jak? Zde přichází na řadu rsync.

Chcete-li vyloučit konkrétní adresář z kopírování pomocí příkazu rsync, stačí spustit:

$ rsync -av --progress ostechnix/ backup/ --exclude dir2

Ukázkový výstup by byl:

sending incremental file list
./
dir1/
dir1/file1.pdf
 6,152,611 100% 58.36MB/s 0:00:00 (xfr#1, to-chk=7/11)
dir1/file2
 2,597,261 100% 14.83MB/s 0:00:00 (xfr#2, to-chk=6/11)
dir1/file3.doc
 88,143 100% 470.37kB/s 0:00:00 (xfr#3, to-chk=5/11)
dir1/file4.txt
 66,374 100% 330.71kB/s 0:00:00 (xfr#4, to-chk=4/11)
dir3/
dir3/file1.pdf
 6,152,611 100% 18.39MB/s 0:00:00 (xfr#5, to-chk=3/11)
dir3/file2
 2,597,261 100% 6.68MB/s 0:00:00 (xfr#6, to-chk=2/11)
dir3/file3.doc
 88,143 100% 224.16kB/s 0:00:00 (xfr#7, to-chk=1/11)
dir3/file4.txt
 66,374 100% 164.10kB/s 0:00:00 (xfr#8, to-chk=0/11)

sent 17,813,759 bytes received 187 bytes 11,875,964.00 bytes/sec
total size is 17,808,778 speedup is 1.00

Výše uvedený příkaz zkopíruje veškerý obsah složky ostechnix do složky, konkrétně záloha a vyloučí adresář dir2 z kopírování.

Případně můžete použít stejný příkaz jako níže.

$ rsync -av --progress --exclude="folder_to_exclude" source_dirctory dest_directory

Příklad:

$ rsync -av --progress --exclude="dir2" ostechnix/ backup/

Ve skutečnosti je dobré vynechat nebo vyloučit některé velké nebo méně důležité adresáře z kopírování při zálohování systému pomocí rsync, abyste ušetřili čas.

Další podrobnosti naleznete na manuálových stránkách.

$ man rsync

Přečtěte si také:

  • Jak rychle přenášet velké soubory přes síť v Linuxu a Unixu
  • Jak zjistit velikost adresáře v systému Linux z příkazového řádku

Metoda 2 – pomocí cp příkaz

Můžeme také použít cp příkaz ke zkopírování složek z jednoho umístění do druhého s výjimkou konkrétních adresářů.

Přejděte do svého zdrojového adresáře, tj. v našem případě ostechnix.

$ cd ostechnix/

A spusťte následující příkaz:

$ cp -r `ls -A | grep -v "dir2"` /home/sk/backup/

Výše uvedený příkaz zkopíruje veškerý obsah aktuální složky ostechnix kromě podadresáře dir2 a uloží je do /home/sk/backup/ adresář.

Ještě jednodušší, můžeme to udělat následovně.

$ cp -r !(dir2) /home/sk/backup/

Další podrobnosti naleznete na manuálových stránkách.

$ man cp

Linux
  1. Jak vyloučit soubory určité velikosti z kopírování v Linuxu

  2. Jak nainstalovat balíčky z konkrétního úložiště v Linuxu

  3. Jak přejmenovat adresář v Linuxu

  1. Jak použít příkaz 'cp' k vyloučení konkrétního adresáře?

  2. Jak mohu vyloučit adresáře z grep -R?

  3. Jak najdu konkrétní soubor z terminálu Linux?

  1. Linux – Jak spustit bootloader z Linuxu?

  2. Jak používat rsync z Windows PC na vzdálený Linux server?

  3. Soubory specifické pro Linux (mv nebo cp) z textového seznamu souborů?