Ako skopírovať súbor do viacerých adresárov s jedným príkazom v systéme Linux
Kopírovanie súboru pomocou príkazového riadka systému Linux 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 mali kopírovať jeden súbor cp
príkaz, prepojenie so zdrojovým súborom a cieľovým adresárom:
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 ~ / Dokumenty / FileToBeCopied.txt / media / lori / MYUSBDRIVE /
Môžeme však urobiť rovnakú úlohu jedným príkazom:
echo dir1 dir2 dir3 | xargs -n 1 cp súbor1
Tu je postup, ako tento príkaz funguje. 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ý podáva výstup z jedného príkazu ako vstup do iného. xargs
príkaz spustiť cp
príkaz trikrát, pri každom pripojení ďalšej cesty adresára, ktorá je k nej pripojená echo
príkaz na konci konca 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 zakaždým, keď je spustený.
Takže, držať sa nášho príkladu z predchádzajúcich, tri oddelené cp
vyššie uvedené príkazy môžu byť kombinované do jedného príkazu, ako je tento:
echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE xargs -n 1 cp ~ / Dokumenty / FileToBeCopied.txt
Upozorňujeme, že ak je kopírovaný súbor v ľubovoľnom určenom adresári určený, automaticky sa nahradí súbor v danom cieli. Nebudete požiadané, či chcete súbor nahradiť. (Normálne, ak používate cp
Ak chcete skopírovať súbor na jedno miesto, môžete ho pridať -ja
možnosť opýtať sa, či chcete nahradiť existujúci súbor. Avšak -ja
možnosť je interaktívna voľba (spôsobuje to cp
príkaz na zadanie vstupu od používateľa) a nemôžete použiť interaktívnu možnosť s cp
príkaz pri jeho použití v spojení s xargs
.)
Ďalšou vecou, ktorú je potrebné zvážiť, 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 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 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 skopí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 ~ / Dokumenty / FileToBeCopied.txt
Zadajte príkaz man echo, man xargs alebo man cp na príkazovom riadku v systéme Linux, kde nájdete viac informácií o niektorom z týchto príkazov.