Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa

Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa
Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa

Video: Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa

Video: Kuinka kopioida tiedosto useisiin hakemistoihin yhdellä komennolla Linuxissa
Video: Speed Up Windows 10 - YouTube 2024, Huhtikuu
Anonim
Tiedoston kopiointi Linuxin komentorivillä on helppoa. Mitä kuitenkin, jos haluat kopioida saman tiedoston useille eri paikoille? Se on helppoa, ja me näytämme, kuinka tehdä se yhdellä komennolla.
Tiedoston kopiointi Linuxin komentorivillä on helppoa. Mitä kuitenkin, jos haluat kopioida saman tiedoston useille eri paikoille? Se on helppoa, ja me näytämme, kuinka tehdä se 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:
Voimme kuitenkin tehdä saman tehtävän yhdellä komennolla:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

Tässä komento toimii.

echo

komento kirjoittaa normaalisti ruudulle. Tässä tapauksessa haluamme kuitenkin syöttää

echo

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

echo

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 aina, 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
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 voi olla hidasta ja ehkä haluat välttää tiedostojen kopioimiseen 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

Suositeltava: