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

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 instalare 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, instalarea combină elemente din cp (copie), chen (schimba proprietarul), chmod (schimba modul), mkdir (face director), și bandă (simboluri de bandă) comenzi. Vă permite să utilizați funcțiile din toate acestea într-o singură acțiune.

Comanda de instalare 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 instalare nu are prea multe opțiuni a se lupta cu.

Când l-ai folosi

Comanda de instalare probabil nu va fi folosită în fiecare zi. Este util, dar numai pentru anumite situații. Un scenariu în care instalarea 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. Directorul de testare ar putea fi necesar să fie creat și trebuie să setați permisiunile și dreptul de proprietate corecte pentru fișiere.

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

  Cele mai bune 3 sisteme de operare Linux pentru educație

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, acesta trebuie copiat în /usr/local/bin pentru a-l face 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 instalarea.

Până când va fi gata de 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 instalare 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 instalare

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 Words.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ă.

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ă:

install -D -v ana Words.db -t ~/test/ana

Opțiunile utilizate 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ă.

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

Următorul pas este să testați utilitarul ana invocându-l î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 membrii grupului de geek să aibă permisiuni de citire și execuție, iar alți utilizatori să aibă numai permisiuni de execuție.

  Cum se instalează tema pictogramei Papirus pe Linux

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

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 instalării să folosească un sufix de .bak.
Am setat proprietarul fișierului să fie dave folosind opțiunea -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

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.

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

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

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.

  Cum să configurați și să utilizați ChatGPT în terminalul Linux

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

Este timpul să folosiți instalarea 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.

Am schimbat directorul țintă pentru a fi /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

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

ls -l

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

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

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

În concluzie

Comanda de instalare 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 instalare 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.