28Jun

Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa

click fraud protection

Tiedoston kopioiminen Linux-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.

Jos haluat kopioida yhden tiedoston, käytä cp-komentoa, joka yhdistää lähdetiedostoon ja kohdekansioon:

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

Jos haluat kopioida sen kahteen muuhun hakemistoon, monet ihmiset tekevät vain komennon kaksiuseamman kerran eri kohteilla:

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. Echo-komento kirjoittaa normaalisti ruudulle. Kuitenkin tässä tapauksessa haluamme syöttää echo-komennon lähdön xargs-komennolla. Tätä varten käytämme putki-symbolia( |), joka syöttää yhden komennon lähdön syötteeksi toiseen. Xargs-komento suorittaa cp-komennon kolme kertaa, joka kerta liittää siihen seuraavan hakemistopolun, joka johdetaan siitä echo-komennosta cp-komennon loppuun. Xargsille lähetetään kolme argumenttia, mutta xargs-komennolla -n 1 kertoo, että se liittää vain yhden näistä argumentteista kerrallaan cp-komentoon joka kerta, kun se suoritetaan.

instagram viewer

Jotta ylläpidettävä esimerkkiä aikaisemmasta, edellä olevat kolme erillistä cp-komentoa voidaan yhdistää yhdeksi tällaiseksi komennoksi:

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

Huomaa, että jos kopioitava tiedosto on jollakin määrätyssä kohdehakemistossa, kyseisessä kohteessa oleva tiedosto korvataan automaattisesti. Sinua ei kysytä, jos haluat korvata tiedoston.(Normaalisti, kun käytät cp-komentoa kopioimaan tiedosto yhdelle paikalle, voit lisätä -i-vaihtoehdon kysyäksesi, haluatko korvata olemassa olevan tiedoston. -i-vaihtoehto on kuitenkin vuorovaikutteinen vaihtoehto( se aiheuttaacp-komento pyytää käyttäjältä syötettä) ja et voi käyttää vuorovaikutteista vaihtoehtoa cp-komennolla, kun käytät sitä yhdessä xargsin kanssa.)

Eräs toinen asia, jota kannattaa harkita, on, että jos kopioit hyvin suurta tiedostoa,haluat lisätä ei-clobber( -n) -vaihtoehdon cp-komentoon yllä olevassa yksittäisessä komennossa. 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-vaihtoehdon eikä kopioi tiedostoa kaiun lausekkeen argumenttien mukaiseen kohteeseen, 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 komentoriville Linuxissa saadaksesi lisätietoja näistä komennoista.