28Jun
Copierea unui fișier cu linia de comandă Linux este ușoară.Cu toate acestea, dacă doriți să copiați același fișier în mai multe locații diferite? Este și ușor și vă vom arăta cum să faceți asta cu o singură comandă.
În mod normal, pentru a copia un fișier, ați folosi comanda cp, legând fișierul sursă și directorul de destinație:
cp ~ /Documents/ FileToBeCopied.txt ~ /TextFiles/Pentru ao copia în alte două directoare, mulți oameni ar rula doar comanda 2de mai multe ori, cu destinații diferite:
cp ~ /Documents/ FileToBeCopied.txt ~ /Dropbox/ cp ~ /Documents/ FileToBeCopied.txt /media/lori/MYUSBDRIVE/Cu toate acestea, putem face aceeași sarcină cu o singură comandă:
echo dir1 dir2 dir3 |xargs -n 1 cp file1Iată cum funcționează această comandă.Comanda de ecou scrie în mod normal pe ecran. Totuși, în acest caz, dorim să alimentăm ieșirea comenzii ecou ca intrare în comanda xargs. Pentru a face acest lucru, folosim simbolul conductei( |) care alimentează ieșirea dintr-o comandă ca intrare în alta. Comanda xargs va rula comanda cp de trei ori, de fiecare dată când va adăuga următoarea cale a directorului prins de la comanda eco la sfârșitul comenzii cp. Există trei argumente care sunt transmise la xargs, dar opțiunea -n 1 din comanda xargs îi spune să adauge câte unul din acele argumente la fiecare comandă cp de fiecare dată când rulează.
Deci, pentru a lipi cu exemplul nostru de mai devreme, cele trei comenzi cp separate de mai sus pot fi combinate intr-o singura comanda ca aceasta:
echo ~ /TextFiles/ ~ / Dropbox /media/lori/ MYUSBDRIVE |xargs -n 1 cp ~ /Documents/ FileToBeCopied.txtRețineți că dacă fișierul copiat există în oricare dintre directoarele de destinație specificate, fișierul din acea destinație va fi înlocuit automat. Nu veți fi întrebat dacă doriți să înlocuiți fișierul.(În mod normal, când utilizați comanda cp pentru a copia un fișier într-o singură locație, puteți adăuga opțiunea -i pentru a întreba dacă doriți să înlocuiți un fișier existent. Cu toate acestea, opțiunea -i este o opțiune interactivăcp pentru a cere intrare de la utilizator) și nu puteți folosi o opțiune interactivă cu comanda cp atunci când o utilizați împreună cu xargs.)
Un alt lucru de luat în considerare este că dacă copiați un fișier foarte mare, ați puteadoriți să adăugați opțiunea no-clobber( -n) la comanda cp din comanda unică de mai sus. Această opțiune împiedică în mod automat ca un fișier să fie suprascris într-o destinație dacă există deja acolo. Dacă copiați un fișier foarte mare pe o rețea, este posibil să fie lent și poate doriți să evitați utilizarea resurselor necesare pentru copierea și înlocuirea fișierului. Următoarea comandă adaugă opțiunea -n și nu va copia fișierul la nici o destinație listată în argumente în instrucțiunea ecou, dacă fișierul există deja în acea destinație.
echo ~ /TextFiles/ ~ / Dropbox /media/lori/ MYUSBDRIVE |xargs -n 1 cp -n ~ /Documents/ FileToBeCopied.txtTip om echo, man xargs sau man cp pe linia de comandă din Linux pentru mai multe informații despre oricare dintre aceste comenzi.