GNU/Linux >> Znalost Linux >  >> Linux

[Linux]:Jak kopírovat soubory/adresáře bez přepsání souborů, které jsou již zkopírovány!

Otázka: Nedávno jsem musel zkopírovat obrovské množství souborů zabírajících úložný prostor 7 TB na jiné místo v mém boxu CentOS. Použil jsem příkaz „cp“, ale z nějakého důvodu (může to být problém se sítí) příkaz skončil po zkopírování několika souborů a adresářů. Nyní, když obnovím operaci kopírování, příkaz začne znovu kopírovat soubory, které již byly zkopírovány (což opět zabere sakra spoustu času a procesoru). Moje otázka tedy zní, mohu říci „cp ‘ k ignorování souborů a adresářů, které již byly zkopírovány (abych mohl ušetřit čas a procesor). Nějaké návrhy?

Odpověď: Můžete použít buď „cp příkaz ‘ nebo ‘rsync ‘ ke kopírování souborů.

Solution1:Nejprve uvidíme příkaz CP:

cp -u --force <src> <dst>

Zde –u možnost zkopíruje soubor pouze tehdy, je-li SOURCE soubor novější než cílový soubor nebo když cílový soubor chybí.

Poznámka :V případě, že výše uvedený příkaz vyzve níže:

cp : overwrite '<filename>'

Poté „cp ‘ příkaz by byl alias s interaktivním režimem! Chcete-li najít alias „cp“, zadejte níže uvedený příkaz:

# type cp
cp is aliased to `cp -i' 

Protože je interaktivní, vyzval k zadání uživatelského vstupu, i když jste zadali –force volba. Chcete-li se vyhnout výše uvedenému a provést neinteraktivní kopírování, použijte absolutní cestu příkazu cp, jak je uvedeno níže:

/usr/bin/cp -u --force <src> <dst>

Řešení 2:Použití příkazu rsync:

# rsync -av --ignore-existing<src> <dst>

Poznámka :rsync vytvoří seznam souborů dopředu. Pokud má váš zdroj velké č. souborů a poté rsync Vytvoření tak velkého seznamu souborů trvá hodiny a hodiny a hodiny! a možná si myslíte, že se proces zablokoval, místo toho přidejte -p a uvidíte ukazatel průběhu a opravdu si nemusíte myslet, že rsync visí!

Můžete si také přečíst náš článek a přidat ukazatel průběhu pro kopírování a přesouvání příkazů v Linuxu.


Linux
  1. Jak kopírovat soubory a měnit vlastnictví, oprávnění současně

  2. Jak používat příkaz Rsync v linuxu?

  3. Jak používat Linuxový příkaz find k hledání souborů

  1. Kopírování souborů a adresářů v Linuxu

  2. Jak najít největší adresáře nebo největší soubory?

  3. Je možné vypsat seznam souborů, které jsou v mezipaměti?

  1. Jak pouze zkopírovat soubory do vzdálené složky na jiný server, který ve složce ještě neexistuje... z příkazového řádku v Linuxu?

  2. Jak odstranit soubory, které jsou starší než n dní BEZ použití příkazu find

  3. Jak zkopírovat soubor do více adresářů pomocí příkazu gnu cp