Početna » kako da » Kako kopirati datoteku u više direktorija s jednom naredbom u Linuxu

    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.