Ako kopírovať súbor do viacerých adresárov s jedným príkazom v systéme Linux

Ako kopírovať súbor do viacerých adresárov s jedným príkazom v systéme Linux
Ako kopírovať súbor do viacerých adresárov s jedným príkazom v systéme Linux

Video: Ako kopírovať súbor do viacerých adresárov s jedným príkazom v systéme Linux

Video: Ako kopírovať súbor do viacerých adresárov s jedným príkazom v systéme Linux
Video: Epson WF-3640 Error 0x69 0xEA 0xF1 Explained - Fix WorkForce WF-3620 3010 3520 3530 3540 - YouTube 2024, Apríl
Anonim
Kopírovanie súboru pomocou príkazového riadka Linuxu je jednoduché. Čo však, ak chcete skopírovať ten istý súbor na niekoľko rôznych miestach? To je tiež jednoduché a my vám ukážeme, ako to urobiť jedným príkazom.
Kopírovanie súboru pomocou príkazového riadka Linuxu je jednoduché. Čo však, ak chcete skopírovať ten istý súbor na niekoľko rôznych miestach? To je tiež jednoduché a my vám ukážeme, ako to urobiť jedným príkazom.

Normálne by ste mali kopírovať jeden súbor, ktorý by ste použili

cp

príkaz, prepojenie na zdrojový súbor a cieľový adresár:

cp ~/Documents/FileToBeCopied.txt ~/TextFiles/

Ak ho chcete skopírovať do dvoch ďalších adresárov, mnohí ľudia by spustili príkaz ešte viackrát, s rôznymi cieľmi:

cp ~/Documents/FileToBeCopied.txt ~/Dropbox/

cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/

Môžeme však urobiť rovnakú úlohu jedným príkazom:
Môžeme však urobiť rovnakú úlohu jedným príkazom:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

Tu je príkaz.

echo

príkaz normálne zapisuje na obrazovku. V tomto prípade však chceme napájať výstup

echo

príkaz ako vstup do

xargs

Príkaz. Na tento účel používame symbol potrubia (

|

), ktorý posiela výstup z jedného príkazu ako vstup do iného.

xargs

príkaz spustiť

cp

príkaz trikrát zakaždým, keď pripojíte ďalšiu cestu k adresáru, ktorá je k nej pripojená

echo

na konci príkazu

cp

Príkaz. K dispozícii sú tri argumenty

xargs

ale

-n 1

možnosť na

xargs

príkaz povie, aby pridal iba jeden z týchto argumentov naraz

cp

príkaz pri každom spustení.

Takže, držať sa nášho príkladu z predchádzajúcich, tri oddelené

cp

vyššie uvedené príkazy možno kombinovať do jedného príkazu, ako je tento:

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt

Upozorňujeme, že ak je súbor, ktorý sa skopíruje, nachádza v ľubovoľnom určenom adresári určenia, súbor v tomto cieli sa automaticky nahradí. Nebudete vás opýtať, či chcete súbor nahradiť. (Normálne, ak používate
Upozorňujeme, že ak je súbor, ktorý sa skopíruje, nachádza v ľubovoľnom určenom adresári určenia, súbor v tomto cieli sa automaticky nahradí. Nebudete vás opýtať, či chcete súbor nahradiť. (Normálne, ak používate

cp

Ak chcete skopírovať súbor na jedno miesto, môžete ho pridať

-i

možnosť sa opýtať, či chcete nahradiť existujúci súbor. Avšak

-i

možnosť je interaktívna voľba (spôsobuje

cp

príkaz na zadanie vstupu od užívateľa) a nemôžete použiť interaktívnu možnosť s

cp

príkaz pri jeho použití v spojení s

xargs

.)

Ďalšia vec, ktorú treba brať do úvahy, je, že ak kopírujete veľmi veľký súbor, možno budete chcieť pridať "no-clobber"

-n

) možnosť na

cp

príkaz v jedinom príkaze vyššie. Táto možnosť automaticky zabraňuje prepísaniu súboru do cieľa, ak už existuje. Ak kopírujete veľmi veľký súbor cez sieť, môže to byť pomalé a možno by ste sa chceli vyhnúť používaniu zdrojov potrebných na kopírovanie a nahradenie súboru. Nasledujúci príkaz pridá

-n

a súbor nebude kopírovať do žiadneho cieľa uvedeného v argumentoch do príkazu echo, ak súbor už v danom cieli existuje.

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt

Odporúča: