Cum să copiați fișiere folosind comanda „instalare” pe Linux
Publicat: 2022-01-29 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.
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.
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ă.
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
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ă.
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 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
- 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ăminstall
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ștegeek
. - Opțiunea
-m
(mod) setează modurile de fișier pentru fișiere, folosind sintaxa numerică standardchmod
.
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.
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.
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
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 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.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · top · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști