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.