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.