Come copiare i file usando il comando "installa" su Linux

Concept art di Bash su un desktop Ubuntu Linux
Fatmawati Achmad Zaenuri / Shutterstock.com

install è un comando versatile per la copia di file in Linux e macOS. È perfetto per l'utente che cerca efficienza. Leggi questo articolo per scoprire come lavorare in modo più intelligente, non più difficile.

Aspetta, non è per l'installazione del software?

Il install Il comando potrebbe avere il nome più fuorviante di qualsiasi comando Linux. In realtà non installa alcun software. Se stai cercando di installare un pacchetto software dalla riga di comando in Ubuntu o in un'altra distribuzione basata su Debian usa il apt-get comando. Su altre distribuzioni Linux, utilizza invece lo strumento di gestione dei pacchetti della tua distribuzione Linux, ad esempio, dnf su Fedora o zypper su openSUSE.

Quindi cosa fa l'installazione?

In poche parole install combina elementi dal cp (copia), chown (Cambiare proprietario), chmod (cambia modalità), mkdir (crea directory) e strip (simboli di strisce). Ti consente di utilizzare le funzioni di tutte quelle in una sola azione.

Il install il comando può:

  • Copia file come cp comando.
  • Scegli se sovrascrivere i file esistenti.
  • Crea la directory di destinazione se non esiste, ad esempio mkdir.
  • Impostare i flag di autorizzazione utente dei file, proprio come il chmod comando.
  • Imposta il proprietario dei file, proprio come il chown comando.
  • Rimuovere il bagaglio non essenziale dai file eseguibili, proprio come il strip comando.

Nonostante tutta quella funzionalità, il install il comando non ha troppe opzioni con cui confrontarsi.

installa la pagina man

Quando lo useresti

Il install il comando probabilmente non verrà utilizzato tutti i giorni. È utile, ma solo per determinate situazioni. Uno scenario in cui install viene in sé lo sviluppo del software. Diciamo che stai programmando una nuova utility. Dovrai eseguire dei test al di fuori dell'ambiente di sviluppo. Per fare ciò è necessario copiare i nuovi file di programma in una directory di test. Potrebbe essere necessario creare la directory di test ed è necessario impostare le autorizzazioni e la proprietà corrette per i file.

Poiché lo sviluppo è un'attività iterativa, puoi finire per fare questa sequenza di azioni molte, molte volte. Il install il comando fa tutto il sollevamento pesante per te. Infine, quando la nuova utility è pronta per essere distribuita, è possibile utilizzare install per copiarlo con le autorizzazioni corrette nella posizione di lavoro finale.

Un esempio

Un programmatore sta lavorando proprio su una nuova utility, chiamata ana. È costituito da un file binario eseguibile e da un database. Dopo il test, è necessario copiarlo /usr/local/bin per renderlo disponibile per tutti gli utenti del sistema Linux. Dovrai sostituire i nomi dei file e i percorsi delle directory nel nostro esempio con i file e i percorsi che stai utilizzando sul tuo computer quando usi install.

Fino a quando non è pronto per il rilascio, verrà testato in una directory chiamata ~/test/ana. Membri del geek il gruppo avrà le autorizzazioni di lettura ed esecuzione. Anche altri utenti avranno autorizzazioni di lettura ed esecuzione. Il install il comando usa la stessa rappresentazione numerica per le autorizzazioni di chmod lo fa. Il nostro programmatore ha deciso che le autorizzazioni devono essere impostate su:

  • Proprietario: leggi, scrivi ed esegui.
  • Gruppo: leggi ed esegui.
  • Altri: eseguire solo.

Come usare il install Comando

La directory di lavoro del nostro programmatore fittizio è ~/work. Ha scritto il programma, lo ha compilato e prodotto un binario chiamato ana. Ha già creato questo file di database ana lavora con, Words.db. Quindi entrambi i file sono pronti per il test. Diamo un'occhiata a loro:

ls -l ana Words.db

Il ana l'utilità che ha appena scritto crea anagrammi da una frase fornita nella riga di comando. I test di verifica sono abbastanza semplici.

test di ana utility nella directory di lavoro

Il nostro programmatore ha invocato ana con la frase “biscotto” e tutto sembra a posto. Ora vuole copiare questi due file su ~/test/ana directory per vedere se la nuova utility funziona correttamente lontano dall'ambiente di sviluppo. Emette il seguente comando:

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

Installa il comando su / test / ana

Le opzioni utilizzate nella riga di comando erano:

  • D: Crea directory, comprese le directory principali, se necessario.
  • v: Dettagliato, elenca ogni directory man mano che viene creata e ogni file viene copiato mentre viene eseguita.
  • t: Directory di destinazione.

Possiamo vederlo install crea il ~/test e quindi crea la directory ~/test/ana directory. I file sono elencati uno per uno man mano che vengono copiati nella directory di destinazione.

Elenco dei file in ~/test/ana conferma che sono stati copiati correttamente.

ls -l

Si trova nella directory / test / ana

Il prossimo passo è testare il ana utilità invocandola in ~/test/ana directory.

test dell'utilità ana nella directory / test / ana

L'utilità funziona come previsto, il che è fantastico. Tuttavia, le autorizzazioni non sono corrette. Il requisito è di impostare i membri del gruppo geek avere autorizzazioni di lettura ed esecuzione e solo per altri utenti.

Possiamo affrontare entrambi questi problemi semplicemente con il seguente comando. Nota l'uso di sudo per eseguire il comando con i permessi di root. Il -o e -g e le opzioni lo richiedono. Ci verrà richiesta la nostra password quando eseguiamo il comando.

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

comando di installazione con opzioni di backup e impostazioni delle premissioni

  • Il -b L'opzione (backup) crea i backup dei file prima che vengano sovrascritti.
  • Il -S L'opzione (suffisso) definisce il suffisso per i file di backup. Se non si fornisce un suffisso a ~ (tilde) viene utilizzato. Stiamo chiedendo install per usare un suffisso di .bak.
  • Abbiamo impostato il proprietario del file come dave usando il -o (proprietario) opzione.
  • Il -g L'opzione (gruppo) richiede il nome di un gruppo. Questo diventa il gruppo proprietario dei file. Viene chiamato il gruppo che useremo geek.
  • Il -m (mode) opzione imposta le modalità file per i file, usando lo standard chmod sintassi numerica.

Non abbiamo più bisogno di usare il -D (crea directory), perché sappiamo che la directory di test esiste già. Abbiamo anche omesso il -v (verbosa) opzione. Elenco dei file nel nostro ~/test/ana la directory ci mostra i dettagli del file:

ls -l

Si trova nella directory / test / ana

Ciò conferma che tutti i nostri requisiti sono stati soddisfatti.

  • I file sono stati copiati nella directory di test.
  • Le autorizzazioni sono state impostate correttamente.
  • dave è il proprietario dei file.
  • Il geek group è il gruppo proprietario dei due file.
  • Sono state fatte copie di backup di ogni file, chiamato ana.bak e Words.db.bak.

Tutto ciò è stato ottenuto mediante l'uso di un comando. Neat.

Il nostro programmatore apporta alcune modifiche finali all'utilità e ricompila. I file che sono stati modificati devono essere copiati nel file ~/test/ana dalla directory ~/work directory. Possiamo farlo usando il -C (confronta) opzione. Se il file di origine e il file di destinazione sono uguali, il file di origine non viene copiato.

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

comando di installazione con l'opzione -C compare

Elencare i file nella directory di destinazione ci mostra che la dimensione del file ana il file è cambiato. È più grande del ana.bakfile. Il timestamp attivo ana è anche cambiato. Queste modifiche sono perché la nuova versione del file è stata copiata qui.

ls -l

È in / test / ana con test per ana utility

La dimensione del file e il timestamp del file Words.db il file non è cambiato. Non sono state apportate modifiche al Words.db file, quindi non è stato copiato. Su un progetto con molti file il -C L'opzione (confronta) può far risparmiare molto tempo e sfornare il disco rigido, copiando solo i file che sono stati modificati.

Il programmatore ha nuovamente testato che ana l'utilità continua a funzionare.

È tempo di usare install per copiare i file su /usr/local/bin directory. Ciò renderà la nuova utility disponibile per tutti gli utenti di questo computer Linux. Lo sappiamo /usr/local/bin esiste, quindi non è necessario creare quella directory. Possiamo usare una versione modificata del nostro ultimo comando.

Abbiamo cambiato la directory di destinazione in modo che sia /usr/local/bin. Abbiamo rimosso il -C (confronta) perché non ci sono ancora copie di questi file nella directory di destinazione, quindi non c'è nulla con cui confrontare. Allo stesso modo, non c'è nulla di cui eseguire il backup, quindi possiamo rimuovere il file -b (backup) e l'opzione -S (suffisso) opzione.

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

installa la copia dei file su / usr / local / bin

Possiamo elencare che i file sono arrivati /usr/local/bin:

ls -l

ls di / usr / local / bin

E come test finale, cambiamo directory nella nostra home directory e vediamo se possiamo invocare la nostra nuova utility da lì.

test di ana utility

Nota che non abbiamo avuto bisogno di prefigurare il ana comando con ./ il che significa che sta scappando /usr/local/bin. Missione compiuta.

Abbiamo detto che l'installazione può rimuovere tabelle di simboli ridondanti e altri bagagli all'interno del file binario, per ridurne le dimensioni. Facciamolo adesso. Si noti che il comando seguente non include Words.db. Questo perché Words.db è un file di database, non un eseguibile binario. Per copiare e ridurre il file binario ana possiamo usare il seguente comando. Abbiamo aggiunto l'opzione -s (restringimento) con una “s” minuscola Abbiamo aggiunto nuovamente l'opzione -b (backup) e l'opzione -S (suffisso), con una “S” maiuscola

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

opzione di installazione con l'opzione -s strip

Elenco dei file in /usr/local/bin ci permette di confrontare le dimensioni del ana file con la sua versione di backup. Il ana il file è stato ridotto a quasi il 60% delle dimensioni precedenti.

ls -l /usr/local/bin

È nella directory di lavoro

In sintesi

La la install il comando si rivolge a un uso piuttosto di nicchia. Per molte persone non verrà utilizzato giorno dopo giorno, o forse di mese in mese. Nonostante ciò, il install Il comando è un buon strumento per conoscere e avere nel tuo arsenale di trucchi. Per quelle occasioni in cui ne hai bisogno, premia la tua curva di apprendimento con incrementi di efficienza, semplicità e semplicemente meno battiture.

Articoli correlati

Ultimi articoli