Kotisivu » miten » Tiedoston kopioiminen useisiin hakemistoihin yhdellä komennolla Linuxissa

    Tiedoston kopioiminen useisiin hakemistoihin yhdellä komennolla Linuxissa

    Tiedoston kopiointi Linux-komentorivillä on helppoa. Entä jos haluat kopioida saman tiedoston useisiin eri paikkoihin? Se on myös helppoa, ja näytämme sinulle, miten se tehdään yhdellä komennolla.

    Normaalisti yhden tiedoston kopioimiseksi käytät cp komento, joka yhdistää lähdetiedostoon ja kohdehakemistoon:

    cp ~ / Asiakirjat / FileToBeCopied.txt ~ / TextFiles /

    Jos haluat kopioida sen kahteen hakemistoon, monet ihmiset suorittavat komentoa vain kaksi kertaa eri kohteilla:

    cp ~ / Dokumentit / FileToBeCopied.txt ~ / Dropbox /
    cp ~ / Asiakirjat / FileToBeCopied.txt / media / lori / MYUSBDRIVE /

    Voimme kuitenkin tehdä saman tehtävän yhdellä komennolla:

    echo dir1 dir2 dir3 | xargs -n 1 cp-tiedosto1

    Näin komento toimii. kaiku komento yleensä kirjoittaa kuvaruutuun. Tässä tapauksessa haluamme kuitenkin syöttää kaiku komento syötteenä xargs komento. Tätä varten käytämme putkisymbolia ( | ) joka syöttää lähdön yhdeltä komennolta syötteeksi toiseen. xargs komento suorittaa cp komennolla kolme kertaa, joka kerta, kun liität siihen seuraavan hakemistopolun kaiku komennon loppuun cp komento. On kolme argumenttia xargs , mutta -n 1 vaihtoehto xargs komento kertoo, että se liittää vain yhden näistä argumenteista kerrallaan cp komento joka kerta, kun se toimii.

    Joten pysyä esimerkillämme aikaisemmin, kolme erillistä cp yllä olevat komennot voidaan yhdistää yhdeksi komennoksi seuraavasti:

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

    Huomaa, että jos kopioitava tiedosto on jossakin määritellyistä kohdekansioista, kyseisessä kohteessa oleva tiedosto korvataan automaattisesti. Sinulta ei kysytä, haluatko korvata tiedoston. (Normaalisti, kun käytät cp komento kopioida tiedosto yhteen paikkaan, voit lisätä -minä voit kysyä, haluatko korvata olemassa olevan tiedoston. Kuitenkin -minä vaihtoehto on interaktiivinen vaihtoehto (se aiheuttaa cp komennolla kysyä syötettä käyttäjältä) ja et voi käyttää interaktiivista vaihtoehtoa cp komentoa käytettäessä sitä xargs .)

    Toinen asia, joka on otettava huomioon, on se, että jos kopioit erittäin suurta tiedostoa, sinun kannattaa lisätä no-clobber ( -n ) vaihtoehto cp komento yllä olevasta yksittäisestä komennosta. Tämä vaihtoehto estää automaattisesti tiedoston korvaamisen määränpäässä, jos se on jo olemassa. Jos kopioit erittäin suurta tiedostoa verkon kautta, se voi olla hidas ja ehkä haluat välttää tiedostojen kopioimiseksi ja korvaamiseksi tarvittavia resursseja. Seuraava komento lisää -n vaihtoehto, eikä kopioi tiedostoa mihinkään kohteisiin, jotka on esitetty argumenteissa kaiun lausuntoon, jos tiedosto on jo kyseisessä kohteessa.

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

    Kirjoita Linuxin komentoriville man echo, man xargs tai man cp, jos haluat lisätietoja näistä komennoista.