Kako kopirati datoteku u više direktorija s jednom naredbom u Linuxu
Kopiranje datoteke s Linux naredbenim retkom je jednostavno. Međutim, što ako želite kopirati istu datoteku na nekoliko različitih lokacija? I to je lako, a mi ćemo vam pokazati kako se to radi s jednom naredbom.
Obično, da biste kopirali jednu datoteku, upotrijebili biste cp
naredba, povezivanje na izvornu datoteku i odredišni direktorij:
cp ~ / Documents / FileToBeCopied.txt ~ / TextFiles /
Da biste ga kopirali u još dva direktorija, mnogi 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, isti zadatak možemo obaviti s jednom naredbom:
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Evo kako radi ova naredba. jeka
naredba normalno piše na zaslon. Međutim, u ovom slučaju, želimo hraniti izlaz jeka
naredbu kao ulaz u xargs
naredba. Da bismo to učinili, koristimo simbol cijevi ( |
) koji dovodi izlaz iz jedne naredbe kao ulaz u drugi. xargs
naredba će pokrenuti cp
naredbu tri puta, svaki put dodajući sljedeću putanju imenika do nje iz jeka
naredbu na kraju cp
naredba. Tri su argumenta proslijeđena xargs
, ali -n 1
opcija na xargs
naredba kaže da samo dodaje jedan od tih argumenata u vrijeme cp
naredbu svaki put kad se pokrene.
Dakle, da se držimo našeg primjera iz ranijeg, tri odvojena cp
gornje naredbe mogu se kombinirati u jednu naredbu ovako:
echo ~ / TextFiles / ~ / Dropbox / mediji / lori / MYUSBDRIVE | xargs -n 1 cp ~ / Dokumenti / FileToBeCopied.txt
Imajte na umu da ako datoteka koja se kopira postoji u nekom od odredišnih direktorija, datoteka u tom odredištu bit će automatski zamijenjena. Nećete biti upitani želite li zamijeniti datoteku. (Obično, kada koristite cp
naredbu za kopiranje datoteke na jedno mjesto, možete dodati -ja
postavite pitanje želite li zamijeniti postojeću datoteku. Međutim -ja
opcija je interaktivna opcija (uzrokuje cp
naredbu za traženje unosa od korisnika) i ne možete koristiti interaktivnu opciju s cp
naredbu kada je koristite zajedno s xargs
.)
Još jedna stvar koju trebate uzeti u obzir je da ako kopirate vrlo veliku datoteku, možda ćete htjeti dodati broj koji nije -n
) opciju za cp
naredbu u jednoj naredbi iznad. Ova opcija automatski sprječava prepisivanje datoteke na odredištu ako već postoji. Ako kopirate veliku datoteku preko mreže, ona može biti spora i možda ćete htjeti izbjeći korištenje resursa potrebnih za kopiranje i zamjenu datoteke. Sljedeća naredba dodaje -n
opciju, i neće kopirati datoteku na bilo koje odredište navedeno u argumentima u izrazu echo, ako datoteka već postoji u tom odredištu.
echo ~ / TextFiles / ~ / Dropbox / mediji / lori / MYUSBDRIVE | xargs -n 1 cp -n ~ / Documents / FileToBeCopied.txt
Upišite man echo, man xargs ili man cp u naredbeni redak u Linuxu za više informacija o bilo kojoj od ovih naredbi.