Úvodná » ako » Ako skopírovať súbor do viacerých adresárov s jedným príkazom v systéme Linux

    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.