GNU/Linux >> Znalost Linux >  >> Ubuntu

Kopírování jednoho souboru současně do více umístění prostřednictvím příkazového řádku Ubuntu

Jako nováček v příkazovém řádku můžete mít pocit, že stejný úkol, který jste rychle použili k provedení prostřednictvím grafického rozhraní, může vyžadovat mnoho příkazů v příkazovém řádku. Jak se však díky učení, praxi a zkušenostem pomalu stáváte zkušeným uživatelem příkazového řádku, začnete si všímat, že stejné úkoly lze provádět velmi rychle pomocí několika velmi jednoduchých, ale užitečných zkratek. V tomto článku popíšeme jeden takový případ, který zjevně může vyžadovat mnoho příkazů ke spuštění, ale ve skutečnosti může úkol splnit jeden jednoduchý příkaz.

Občas vyžadujeme zkopírování jednoho souboru na více míst v našem systému. Znamená to tedy, že musíme příkaz cp použít vícekrát? Odpověď je ne! Pojďme číst dále, abychom našli řešení.

Příkazy zmíněné v tomto článku byly spuštěny na systému Ubuntu 18.04 LTS.

Jak zkopírovat jeden soubor současně do více umístění

Všichni víme, jak nám příkaz cp umožňuje zkopírovat soubor do nového umístění pomocí následující syntaxe:

$ cp ~[/location/sourcefile] ~[/destinationfolder]

Zde kopíruji ukázkový textový soubor ze složky Stažené soubory do složky Dokumenty:

Nyní, pokud chci zkopírovat stejný soubor do dvou různých umístění namísto jednoho, zdá se pravděpodobné řešení použít příkaz cp dvakrát.

Zde používám dvakrát příkaz cp ke zkopírování ukázkového textového souboru ze složky Stažené soubory do složek Veřejné a Plocha:

Kopírování stejného souboru do dvou umístění pomocí příkazu cp dvakrát se stále zdá logické, ale předpokládejme, že musíme soubor zkopírovat do tří, pěti nebo dokonce více umístění. Zde je návod, jak tohoto účelu může dosáhnout jeden příkaz.

Syntaxe:

$ echo [destination1] [desctination2] [destiantion3]..... | xargs -n 1 cp [/location/sourcefile]

V následujícím příkladu použiji tento příkaz ke zkopírování ukázkového textového souboru ze složky Stažené soubory do tří různých složek současně:

K dosažení našeho účelu jsme použili příkazy echo a xargs na jednom řádku.

Jak příkaz funguje?

Příkaz echo vytiskne výstup na obrazovku, ale v našem příkladu jej používáme k předání výstupu příkazu xargs prostřednictvím | symbol. Příkaz xargs převezme vstup třikrát z příkazu echo a třikrát provede operaci cp, přičemž zkopíruje ukázkový text na tři různá místa. Počet n říká příkazu cp, aby bral vždy jeden argument.

Upozorňujeme, že tento příkaz přepíše již existující soubor se stejným názvem v cílové složce. Proto je dobrou praxí vždy zálohovat důležité soubory. Volba i, kterou jsme použili pro dotaz před operací přepsání, nefunguje s příkazem xargs.

Existuje však jedno použití příkazu, které vám může pomoci vyhnout se přepsání souboru, pokud již v cílové složce existuje; možnost n před zdrojovým souborem.

Syntaxe:

$ echo [destination1] [desctination2] [destiantion3]..... | xargs -n 1 cp n [/lcoation/sourcefile]

Příklad:

Volba n je velmi užitečná při kopírování velmi velkých souborů z jednoho umístění na druhé, zejména přes síť. Tímto způsobem se můžete vyhnout plýtvání prostředky na kopírování a následné nahrazení již existujícího souboru.

Po spuštění tohoto tutoriálu jste se o krok přiblížili k tomu, abyste se stali guru příkazového řádku. Nyní nemusíte psát více příkazů, abyste provedli jednoduchý úkol zkopírovat jeden soubor na různá místa. Můžete sloučit příkazy echo a xargs, jak jsme popsali, a získat tak řešení vašeho problému pomocí jednoho příkazu.


Ubuntu
  1. Stáhněte si soubor na Ubuntu pomocí příkazového řádku v systému Ubuntu 20.04

  2. Obnovení záloh selhává v Ubuntu 16.04?

  3. Alternativa k příkazovému řádku SSH z Ubuntu

  1. Jak snadno otevřít soubor PDF z příkazového řádku v Ubuntu

  2. Zkopírujte soubor do více adresářů z příkazového řádku v systému Linux

  3. Jak spustit více příkazů, které mají &v jednom příkazovém řádku?

  1. Jak stáhnout soubor na Ubuntu pomocí příkazového řádku

  2. Jak zkopírovat soubor jedním příkazem do více adresářů v Linuxu

  3. Otestujte svou rychlost internetu pomocí příkazového řádku Ubuntu