Kopiranje datoteke s Linux komandnom linijom je jednostavno. Međutim, što ako želite kopirati istu datoteku na nekoliko različitih lokacija? To je lako i pokazat ćemo vam 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 ~ / Dokumenti / FileToBeCopied.txt / media / lori / MYUSBDRIVE /
Međutim, možemo napraviti isti zadatak s jednim naredbom:
echo dir1 dir2 dir3 | xargs -n 1 cp datoteku1
Evo kako ova naredba funkcionira. jeka
naredba normalno piše na zaslonu. Međutim, u ovom slučaju želimo hraniti izlazne datoteke jeka
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 jeka
zapovijed do kraja cp
naredba. Postoje tri argumenta xargs
, ali -n1
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 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 je spor i možda biste željeli 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 ~ / Dokumenti / FileToBeCopied.txt
Upišite čovjeka echo, man xargs ili čovjeka cp na naredbenom retku u Linuxu za više informacija o bilo kojoj od tih naredbi.