28Jun
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.
Da biste kopirali u još dva direktorija, mnogi bi samo pokrenuli naredbu dvaviše 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:
echo dir1 dir2 dir3 |xargs -n 1 cp file1Evo kako ova naredba funkcionira. Echo naredba normalno piše na zaslonu. Međutim, u ovom slučaju, želimo hraniti izlaz naredbe echo kao ulaz u xargs naredbu. Da biste to učinili, koristimo simbol cijevi( |) koji izvodi izlaz iz jedne naredbe kao ulaz u drugi. Xargs naredba će pokrenuti naredbu cp tri puta, svaki put dodavanjem sljedećeg direktorija put piped na nju iz echo naredbe na kraju naredbe cp. Postoje tri argumenta koji se prenose na xargs, ali opcija -n 1 na naredbi xargs kaže da samo jedan od tih argumenata istodobno doda naredbu cp svaki put kad se pokrene.
Dakle, da se pridržavamo našeg primjera iz ranijih, tri odvojene naredbe cp mogu se kombinirati u jednu naredbu kao što je ovaj:
echo ~ /TextFiles/ ~ / Dropbox /media/lori/ MYUSBDRIVE |xargs -n 1 cp ~ /Documents/ FileToBeCopied.txtImajte na umu da ako datoteka koja se kopira nalazi 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 naredbu cp za kopiranje datoteke na jednu lokaciju, možete dodati opciju -i da biste pitali želite li zamijeniti postojeću datoteku. Međutim, opcija -i je interaktivna opcija( to uzrokujecp naredba tražiti ulaz od korisnika) i ne možete koristiti interaktivnu opciju s cp naredbom kada ga koristite zajedno s xargs.)
Jedna druga stvar koju treba uzeti u obzir je da ako kopirate vrlo veliku datoteku, moždaželite dodati opciju "no-clobber"( -n) na naredbu cp 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 opciju -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.txtTip čovjeka echo, man xargs ili čovjek cp na naredbenom retku u Linuxu za više informacija o bilo kojoj od tih naredbi.