Kako kopirati datoteku u više direktorija s jednim naredbom u Linuxu

Kako kopirati datoteku u više direktorija s jednim naredbom u Linuxu
Kako kopirati datoteku u više direktorija s jednim naredbom u Linuxu

Video: Kako kopirati datoteku u više direktorija s jednim naredbom u Linuxu

Video: Kako kopirati datoteku u više direktorija s jednim naredbom u Linuxu
Video: 20 Geschenke Tipps für alle Echten Werkzeugfans | Zum Verschenken oder Behalten bestens geeignet - YouTube 2024, Travanj
Anonim
Kopiranje datoteke s Linux komandnom linijom je jednostavno. Međutim, što ako želite kopirati istu datoteku na nekoliko različitih lokacija? To je lako, a mi ćemo vam pokazati kako to učiniti jednim naredbom.
Kopiranje datoteke s Linux komandnom linijom je jednostavno. Međutim, što ako želite kopirati istu datoteku na nekoliko različitih lokacija? To je lako, a mi ćemo vam pokazati kako to učiniti jednim naredbom.

Uobičajeno, za kopiranje jedne datoteke koristit ćete

cp

naredba, povezivanje s izvornom datotekom i odredišnim direktorijem:

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

Da biste je kopirali u još dva direktorija, mnogi ljudi bi samo pokrenuli naredbu još dva puta, s različitim odredištima:

cp ~/Documents/FileToBeCopied.txt ~/Dropbox/

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

Međutim, možemo napraviti isti zadatak s jednim naredbom:
Međutim, možemo napraviti isti zadatak s jednim naredbom:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

Ovdje funkcionira ova naredba.

echo

naredba normalno piše na zaslonu. Međutim, u ovom slučaju želimo hraniti izlazne datoteke

echo

naredba kao unos u

xargs

naredba. Da biste to učinili, koristimo simbol cijevi (

|

) koji hrani izlaz iz jedne naredbe kao ulaza u drugi.

xargs

naredba će pokrenuti

cp

naredbu tri puta, pri svakom dodavanju sljedeće putanje direktorija koji je na njega povezan

echo

zapovijed do kraja

cp

naredba. Postoje tri argumenta

xargs

ali

-n 1

opcija na

xargs

naredba kaže da samo jedan od tih argumenata istodobno doda

cp

naredbu svaki put kad se pokrene.

Dakle, da se pridržavamo našeg primjera iz ranijih, ta tri odvojena

cp

gore navedene naredbe mogu se kombinirati u jednu naredbu poput ove:

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

Imajte na umu da ako datoteka kopirana postoji u bilo kojem od navedenih odredišnih direktorija, datoteka u tom odredištu automatski će se zamijeniti. Nećete se pitati želite li zamijeniti datoteku. (Normalno, kada koristite
Imajte na umu da ako datoteka kopirana postoji u bilo kojem od navedenih odredišnih direktorija, datoteka u tom odredištu automatski će se zamijeniti. Nećete se pitati želite li zamijeniti datoteku. (Normalno, kada koristite

cp

naredbu za kopiranje datoteke na jednu lokaciju, možete dodati

-i

da biste pitali želite li zamijeniti postojeću datoteku. Međutim

-i

opcija je interaktivna opcija (to uzrokuje

cp

naredba tražiti ulaz od korisnika) i ne možete koristiti interaktivnu opciju s

cp

naredba kada ga koristite u sprezi s

xargs

.)

Još jedna stvar koju treba razmotriti jest da, ako kopirate vrlo veliku datoteku, možda želite dodati ne-clobber (

-n

) opciju za

cp

naredba u jednoj naredbi iznad. Ova opcija automatski sprječava prebrisanje datoteke u odredištu ako već postoji. Ako kopirate vrlo veliku datoteku putem mreže, možda ćete biti spor i možda ćete izbjegavati upotrebu resursa potrebnih za kopiranje i zamjenu datoteke. Sljedeća naredba dodaje

-n

i neće kopirati datoteku na bilo koje odredište navedeno u argumentima iz izjave ehe, ako datoteka već postoji u tom odredištu.

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

Preporučeni: