If-Koubou

Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa

Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa (Miten)

Tiedoston kopiointi Linuxin komentorivillä on helppoa. Mitä kuitenkin, jos haluat kopioida saman tiedoston useille eri paikoille? Se on myös helppoa, ja näytämme sinulle, miten se tehdään yhdellä komennolla.

Normaalisti yhden tiedoston kopioiminen käytät cp komento, linkki lähdetiedostoon ja kohdekansioon:

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

Jos haluat kopioida sen kahteen muuhun hakemistoon, monet ihmiset tekevät komentoa vain kaksi kertaa eri tavoin:

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

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

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

Tässä komento toimii. kaiku komento kirjoittaa normaalisti ruudulle. Tässä tapauksessa haluamme kuitenkin syöttää kaiku komento panoksena xargs komento. Tätä varten käytämme putken symbolia ( | ), joka syöttää yhden komennon lähdön syötteeksi toiseen. xargs komento suorittaa cp komento kolme kertaa, joka kerta jokaisen seuraavan hakemistopolun liittäminen siihen kaiku komento loppuun cp komento. Kolme argumenttia siirretään xargs , mutta -n 1 vaihtoehto xargs komento kertoo vain liittää yhden näistä argumenteista kerrallaan cp komento joka kerta kun se ajetaan.

Joten, pysyäksemme esimerkkinä aiemmasta, kolme erillistä cp yllä olevat komennot voidaan yhdistää yhdeksi tällaiseksi komennoksi:

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

Huomaa, että jos kopioitava tiedosto löytyy mistä tahansa määritetystä kohdehakemistosta, kyseisessä kohteessa oleva tiedosto korvataan automaattisesti. Sinua ei kysytä, jos haluat korvata tiedoston. (Normaalisti, kun käytät cp komento kopioida tiedosto yhdelle paikalle, voit lisätä -i voit kysyä, haluatko korvata olemassa olevan tiedoston. Kuitenkin -i vaihtoehto on vuorovaikutteinen vaihtoehto (se aiheuttaa cp komento pyytää käyttäjältä syötettä) ja et voi käyttää vuorovaikutteista vaihtoehtoa cp komento, kun sitä käytetään yhdessä xargs .)

Toinen asia, jota kannattaa harkita, on se, että jos kopioit hyvin suurta tiedostoa, voit lisätä ei-clobber ( -n ) -vaihtoehto cp komennon yllä olevaan yksittäiseen komentoon. Tämä vaihtoehto estää automaattisesti, että tiedostoa korvataan kohteessa, jos se on jo olemassa. Jos kopioit hyvin suuren tiedoston verkkoon, se saattaa olla hidasta ja ehkä haluat välttää tiedostojen kopiointiin ja korvaamiseen tarvittavia resursseja. Seuraava komento lisää -n vaihtoehtoa, eikä kopioi tiedostoa kaiun lausekkeen argumenttien mukaisiin kohteisiin, jos tiedosto on jo olemassa kyseisessä kohteessa.

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

Kirjoita manuaalinen, man xargs tai man cp komentoriviltä Linuxissa saadaksesi lisätietoja näistä komennoista.