28Jun

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

click fraud protection

Kopírovanie súboru s príkazovým riadkom 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.

Zvyčajne by ste skopírovali jeden súbor, použili by ste príkaz cp, ktorý by prepojil zdrojový a cieľový adresár:

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

Ak chcete skopírovať do dvoch ďalších adresárov, mnohí ľudia by spustili iba príkaz dvaviackrá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:

echo dir1 dir2 dir3 |xargs -n 1 cp file1

Tu je návod, ako tento príkaz funguje. Príkaz echo zvyčajne zapíše na obrazovku. V tomto prípade však chceme napájať výstup príkazu echo ako vstup do príkazu xargs. Na tento účel používame symbol potrubia( |), ktorý napája výstup z jedného príkazu ako vstup do iného. Príkaz xargs spustí príkaz cp trikrát, vždy keď pripojí ďalšiu cestu k adresáru, ktorá je k nemu privedená z príkazu echo na koniec príkazu cp. Existujú tri argumenty, ktoré sa prenášajú na xargs, ale voľba -n 1 v príkaze xargs hovorí, že iba pripojí jeden z týchto argumentov k príkazu cp pri každom spustení.

instagram viewer

Aby sme sa držali nášho príkladu z predchádzajúcich, tri samostatné príkazy cp vyššie možno kombinovať do jedného príkazu takto:

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

Všimnite si, že ak je kopírovaný súbor existujúci v ľubovoľnom určenom adresári, súbor v tomto cieli bude automaticky vymenený.Nebudete vás opýtať, či chcete súbor nahradiť.(Normálne, ak použijete príkaz cp na kopírovanie súboru na jedno miesto, môžete pridať voľbu -i a položiť otázku, či chcete nahradiť existujúci súbor. Avšak voľba -i je interaktívna voľba( spôsobuje tocp príkaz, aby ste požiadali o vstup od užívateľa) a nemôžete použiť interaktívnu voľbu s príkazom cp pri jeho použití v spojení s xargs.)

Ďalšia vec, ktorú treba zvážiť, je, že ak kopírujete veľmi veľký súbor,chcete pridať volbu no-clobber( -n) príkazu cp v jednom 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 rozsiahly súbor cez sieť, môže 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á voľbu -n a súbor nekopíruje 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

Zadajte man echo, man xargs alebo man cp na príkazovom riadku v systéme Linux pre viac informácií o každom z týchto príkazov.