Cum să copiați fișiere folosind comanda „instalare” pe Linux

Publicat: 2022-01-29
Arta conceptuală a lui Bash pe un desktop Ubuntu Linux
Fatmawati Achmad Zaenuri/Shutterstock.com

install este o comandă versatilă de copiere a fișierelor în Linux și macOS. Este perfect pentru utilizatorii puternici care caută eficiență. Citiți acest articol pentru a descoperi cum să lucrați mai inteligent, nu mai greu.

Așteptați—Nu este pentru instalarea software-ului?

Comanda de install poate avea cel mai înșelător nume dintre oricare dintre comenzile Linux. De fapt, nu instalează niciun software. Dacă încercați să instalați un pachet software din linia de comandă în Ubuntu sau altă distribuție bazată pe Debian, utilizați comanda apt-get . Pe alte distribuții Linux, utilizați instrumentul de gestionare a pachetelor din distribuția dvs. Linux - de exemplu, dnf pe Fedora sau zypper pe openSUSE.

Deci, ce face instalarea?

Pe scurt, install combină elemente din comenzile cp (copiere), chown (schimba proprietarul), chmod (modul de schimbare), mkdir (realizarea directorului) și strip (simboluri strip). Vă permite să utilizați funcțiile din toate acestea într-o singură acțiune.

Comanda de install poate:

  • Copiați fișiere precum comanda cp .
  • Alegeți dacă doriți să suprascrieți fișierele existente.
  • Creați directorul țintă dacă nu există, cum ar fi mkdir .
  • Setați steaguri de permisiuni ale utilizatorului pentru fișiere, la fel ca comanda chmod .
  • Setați proprietarul fișierelor, la fel ca comanda chown .
  • Eliminați bagajele neesențiale din fișierele executabile, la fel ca comanda strip .

În ciuda tuturor acestor funcționalități, comanda de install nu are prea multe opțiuni cu care să se confrunte.

instalați pagina de manual

Când l-ai folosi

Comanda de install probabil nu va fi folosită în fiecare zi. Este util, dar numai pentru anumite situații. Un scenariu în care install devine proprie este dezvoltarea de software. Să presupunem că programați un nou utilitar. Va trebui să testați în afara mediului de dezvoltare. Pentru a face acest lucru, trebuie să copiați noile fișiere de program într-un director de testare. Este posibil să fie necesar să fie creat directorul de testare și trebuie să setați permisiunile și dreptul de proprietate corecte pentru fișiere.

Publicitate

Deoarece dezvoltarea este o activitate iterativă, puteți ajunge să faceți această secvență de acțiuni de multe, de multe ori. Comanda de install face toate sarcinile grele pentru dvs. În cele din urmă, când noul dvs. utilitar este gata pentru a fi implementat, puteți utiliza install pentru a-l copia cu permisiunile corecte în locația finală de lucru.

Un exemplu

Un programator lucrează la un astfel de utilitar nou, numit ana . Este format dintr-un fișier binar executabil și o bază de date. După testare, trebuie copiat în /usr/local/bin pentru a fi disponibil pentru toți utilizatorii sistemului Linux. Va trebui să înlocuiți numele fișierelor și căile directoarelor din exemplul nostru cu fișierele și căile pe care le utilizați pe computer când utilizați install .

Până când este gata pentru lansare, va fi testat într-un director numit ~/test/ana . Membrii grupului de geek vor avea permisiuni de citire și executare. Alți utilizatori vor avea și permisiuni de citire și executare. Comanda de install folosește aceeași reprezentare numerică pentru permisiuni ca și chmod . Programatorul nostru a decis că permisiunile trebuie setate la:

  • Proprietar: Citiți, scrieți și executați.
  • Grup: Citiți și executați.
  • Altele: Execută numai.

Cum se utilizează comanda de install

Directorul de lucru al programatorului nostru fictiv este ~/work . El a scris programul, l-a compilat și a produs un binar numit ana . El a creat deja fișierul de bază de date cu care lucrează ana , Words.db . Deci ambele fișiere sunt gata pentru testare. Să aruncăm o privire la ele:

 ls -l ana Cuvinte.db 

Utilitarul ana pe care tocmai l-a scris creează anagrame dintr-o frază furnizată pe linia de comandă. Testarea de verificare este destul de simplă.

testarea unui utilitar în directorul de lucru

Programatorul nostru a invocat-o pe ana cu expresia „biscuit” și totul pare bine. Acum vrea să copieze aceste două fișiere în directorul ~/test/ana pentru a vedea dacă noul utilitar funcționează corect departe de mediul de dezvoltare. El lansează următoarea comandă:

 instalează -D -v ana Words.db -t ~/test/ana 

Instalați comanda în /test/ana

Opțiunile folosite pe linia de comandă au fost:

  • D : Creați directoare, inclusiv directoare părinte, dacă este necesar.
  • v : Verbos, enumerați fiecare director așa cum este realizat și fiecare copiere a fișierului așa cum este efectuat.
  • t : Director țintă.
Publicitate

Putem vedea că install creează directorul ~/test și apoi creează directorul ~/test/ana . Fișierele sunt listate unul câte unul pe măsură ce sunt copiate în directorul țintă.

Listarea fișierelor în ~/test/ana confirmă că acestea au fost copiate corect.

 ls -l 

ls în directorul /test/ana

Următorul pas este să testați utilitarul ana invocându-l în directorul ~/test/ana .

testarea unui utilitar în directorul /test/ana

Utilitatea funcționează conform așteptărilor, ceea ce este grozav. Cu toate acestea, permisiunile nu sunt corecte. Cerința este să setați membri ai grupului de geek să aibă permisiuni de citire și de execuție, iar alți utilizatori să aibă numai permisiuni de execuție.

Putem rezolva ambele probleme destul de simplu cu următoarea comandă. Observați utilizarea sudo pentru a rula comanda cu permisiuni root. Opțiunile -o și -g și necesită acest lucru. Ni se va cere parola când lansăm comanda.

 sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana 

comanda de instalare cu opțiuni de rezervă și setări de permisiuni

  • Opțiunea -b (backup) creează copii de siguranță ale fișierelor înainte ca acestea să fie suprascrise.
  • Opțiunea -S (sufix) definește sufixul pentru fișierele de rezervă. Dacă nu furnizați un sufix, se folosește un ~ (tilde). Solicităm install să folosească un sufix de .bak .
  • Am setat proprietarul fișierului să fie dave folosind -o (proprietar).
  • Opțiunea -g (grup) necesită numele unui grup. Acesta devine grupul de proprietar al fișierelor. Grupul pe care îl vom folosi se numește geek .
  • Opțiunea -m (mod) setează modurile de fișier pentru fișiere, folosind sintaxa numerică standard chmod .

Nu mai trebuie să folosim opțiunea -D (creare directoare), deoarece știm că directorul de testare există deja. De asemenea, am omis opțiunea -v (verbosă). Listarea fișierelor din directorul nostru ~/test/ana ne arată detaliile fișierului:

 ls -l 

ls în directorul /test/ana

Acest lucru confirmă că toate cerințele noastre au fost îndeplinite.

  • Fișierele au fost copiate în directorul de testare.
  • Permisiunile au fost setate corect.
  • dave este proprietarul fișierelor.
  • Grupul de geek este grupul de proprietar al celor două fișiere.
  • Au fost făcute copii de rezervă ale fiecărui fișier, numite ana.bak și Words.db.bak.
Publicitate

Toate acestea au fost realizate prin utilizarea unei singure comenzi. îngrijit.

Programatorul nostru face câteva modificări finale ale utilitarului și recompilează. Fișierele care s-au schimbat trebuie copiate în directorul ~/test/ana din directorul ~/work . Putem face acest lucru folosind opțiunea -C (comparare). Dacă fișierul sursă și fișierul țintă sunt aceleași, fișierul sursă nu este copiat.

 sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana 

comanda de instalare cu opțiunea de comparare -C

Listarea fișierelor din directorul țintă ne arată că dimensiunea fișierului ana s-a schimbat. Este mai mare decât fișierul ana.bak . Timpul de pe ana s-a schimbat și el. Aceste modificări se datorează faptului că noua versiune a fișierului a fost copiată aici.

 ls -l 

Este în /test/ana cu test pentru un utilitar

Dimensiunea și marca temporală a fișierului Words.db nu s-au schimbat. Nu s-au făcut modificări fișierului Words.db , așa că nu a fost copiat. Pe un proiect cu multe fișiere, opțiunea -C (comparare) poate economisi mult timp și pierderea hard diskului, prin copierea doar a acelor fișiere care au fost modificate.

Programatorul a testat din nou că utilitarul ana continuă să funcționeze.

Este timpul să folosiți install pentru a copia fișierele în directorul /usr/local/bin . Acest lucru va face noul utilitar disponibil pentru toți utilizatorii acestui computer Linux. Știm că /usr/local/bin există, așa că nu trebuie să creăm acel director. Putem folosi o versiune modificată a ultimei noastre comenzi.

Publicitate

Am schimbat directorul țintă în /usr/local/bin . Am eliminat opțiunea -C (comparare) deoarece nu există încă copii ale acestor fișiere în directorul țintă, așa că nu există nimic cu care să comparați. La fel, nu există nimic de care să faceți backup, așa că putem elimina opțiunea -b (backup) și opțiunea -S (sufix).

 sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin 

instalați fișierele de copiere în /usr/local/bin

Putem enumera că fișierele au ajuns în /usr/local/bin :

 ls -l 

ls din /usr/local/bin

Și, ca test final, să schimbăm directorul în directorul nostru principal și să vedem dacă putem invoca noul nostru utilitar de acolo.

testul unui utilitar

Rețineți că nu a fost nevoie să prefațăm comanda ana cu ./ ceea ce înseamnă că rulează din /usr/local/bin . Misiune indeplinita.

Am menționat că instalarea poate elimina tabelele de simboluri redundante și alte bagaje din fișierul binar, pentru a-l reduce în dimensiune. Să facem asta acum. Rețineți că comanda de mai jos nu include Words.db. Acest lucru se datorează faptului că Words.db este un fișier de bază de date, nu un executabil binar. Pentru a copia și micșora fișierul binar ana putem folosi următoarea comandă. Am adăugat opțiunea -s (micșorare) cu un „s” minuscul. Am adăugat din nou opțiunea -b (backup) și opțiunea -S (sufix), cu un „S” majuscul.

 sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin 

opțiunea de instalare cu opțiunea strip -s

Publicitate

Listarea fișierelor în /usr/local/bin ne permite să comparăm dimensiunea fișierului ana cu versiunea sa de rezervă. Fișierul ana a fost redus la aproape 60% din dimensiunea anterioară.

 ls -l /usr/local/bin 

este în directorul de lucru

În concluzie

Comanda de install se adresează unei utilizări destul de nișă. Pentru mulți oameni nu va fi folosit zi de zi sau, eventual, de la lună la lună. În ciuda acestui fapt, comanda de install este un instrument bun pentru a fi familiarizat și pentru a avea în arsenalul tău de trucuri. Pentru acele ocazii în care aveți nevoie, vă recompensează curba de învățare cu creșteri în eficiență, simplitate și pur și simplu mai puține apăsări de taste.

LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști