So kopieren Sie Dateien mit dem Befehl „install“ unter Linux

Veröffentlicht: 2022-01-29
Konzeptzeichnung von Bash auf einem Ubuntu-Linux-Desktop
Fatmawati Achmad Zaenuri/Shutterstock.com

install ist ein vielseitiger Befehl zum Kopieren von Dateien in Linux und macOS. Es ist perfekt für Power-User, die nach Effizienz suchen. Lesen Sie diesen Artikel, um zu erfahren, wie Sie intelligenter arbeiten können – nicht härter.

Warten Sie – es ist nicht für die Installation von Software?

Der install hat möglicherweise den irreführendsten Namen aller Linux-Befehle. Es installiert eigentlich keine Software. Wenn Sie versuchen, ein Softwarepaket über die Befehlszeile in Ubuntu oder einer anderen Debian-basierten Distribution zu installieren, verwenden Sie den Befehl apt-get . Verwenden Sie bei anderen Linux-Distributionen stattdessen das Paketverwaltungstool Ihrer Linux-Distribution – zum Beispiel dnf unter Fedora oder zypper unter openSUSE.

Also, was macht die Installation?

Kurz gesagt kombiniert install Elemente aus den Befehlen cp (kopieren), chown (Eigentümer ändern), chmod (Modus ändern), mkdir (Verzeichnis erstellen) und strip (Symbole entfernen). Sie können Funktionen von all diesen in einer einzigen Aktion verwenden.

Der install kann:

  • Kopieren Sie Dateien wie den Befehl cp .
  • Wählen Sie aus, ob vorhandene Dateien überschrieben werden sollen.
  • Erstellen Sie das Zielverzeichnis, wenn es nicht existiert, wie mkdir .
  • Setzen Sie die Benutzerberechtigungs-Flags der Dateien, genau wie der Befehl chmod .
  • Legen Sie den Eigentümer der Dateien fest, genau wie beim Befehl chown .
  • Entfernen Sie unnötigen Ballast aus ausführbaren Dateien, genau wie der strip Befehl.

Trotz all dieser Funktionalität hat der install nicht allzu viele Optionen, mit denen er fertig werden muss.

Manpage installieren

Wann würden Sie es verwenden

Der install wird wahrscheinlich nicht jeden Tag verwendet. Es ist nützlich, aber nur für bestimmte Situationen. Ein Szenario, in dem install zum Tragen kommt, ist die Softwareentwicklung. Angenommen, Sie programmieren ein neues Dienstprogramm. Sie müssen Tests außerhalb der Entwicklungsumgebung durchführen. Dazu müssen Sie die neuen Programmdateien in ein Testverzeichnis kopieren. Das Testverzeichnis muss möglicherweise erstellt werden, und Sie müssen die richtigen Berechtigungen und Eigentumsrechte für die Dateien festlegen.

Anzeige

Da die Entwicklung eine iterative Aktivität ist, können Sie diese Abfolge von Aktionen viele, viele Male ausführen. Der install erledigt die ganze schwere Arbeit für Sie. Wenn Ihr neues Dienstprogramm bereit zur Bereitstellung ist, können Sie schließlich install verwenden, um es mit den richtigen Berechtigungen an seinen endgültigen Arbeitsspeicherort zu kopieren.

Ein Beispiel

Ein Programmierer arbeitet an einem solchen neuen Dienstprogramm namens ana . Es besteht aus einer ausführbaren Binärdatei und einer Datenbank. Nach dem Testen muss es nach /usr/local/bin kopiert werden, um es für alle Benutzer des Linux-Systems verfügbar zu machen. Sie müssen die Dateinamen und Verzeichnispfade in unserem Beispiel durch die Dateien und Pfade ersetzen, die Sie auf Ihrem Computer verwenden, wenn Sie install verwenden.

Bis es zur Veröffentlichung bereit ist, wird es in einem Verzeichnis namens ~/test/ana getestet. Mitglieder der geek -Gruppe haben Lese- und Ausführungsberechtigungen. Andere Benutzer haben ebenfalls Lese- und Ausführungsberechtigungen. Der install Befehl verwendet dieselbe numerische Darstellung für Berechtigungen wie chmod . Unser Programmierer hat entschieden, dass die Berechtigungen wie folgt gesetzt werden müssen:

  • Eigentümer: Lesen, schreiben und ausführen.
  • Gruppe: Lesen und ausführen.
  • Andere: Nur ausführen.

So verwenden Sie den install

Das Arbeitsverzeichnis unseres fiktiven Programmierers ist ~/work . Er hat das Programm geschrieben, kompiliert und eine Binärdatei namens ana erstellt. Er hat bereits die Datenbankdatei Words.db erstellt, mit der ana arbeitet. Beide Dateien sind also zum Testen bereit. Werfen wir einen Blick auf sie:

 ls -l ana Words.db 

Das Dienstprogramm ana , das er gerade geschrieben hat, erstellt Anagramme aus einem Satz, der auf der Befehlszeile bereitgestellt wird. Der Verifizierungstest ist ziemlich einfach.

Test eines Dienstprogramms im Arbeitsverzeichnis

Unser Programmierer hat ana mit dem Ausdruck „biscuit“ aufgerufen und alles scheint in Ordnung zu sein. Diese beiden Dateien möchte er nun in das Verzeichnis ~/test/ana kopieren, um zu sehen, ob das neue Dienstprogramm außerhalb der Entwicklungsumgebung richtig funktioniert. Er gibt folgenden Befehl aus:

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

Installieren Sie den Befehl nach /test/ana

Die in der Befehlszeile verwendeten Optionen waren:

  • D : Erstellen Sie Verzeichnisse, einschließlich übergeordneter Verzeichnisse, falls erforderlich.
  • v : Ausführlich, listet jedes Verzeichnis auf, während es erstellt wird, und jede Dateikopie, während es ausgeführt wird.
  • t : Zielverzeichnis.
Anzeige

Wir können sehen, dass install das Verzeichnis ~/test und dann das Verzeichnis ~/test/ana erstellt. Die Dateien werden einzeln aufgelistet, während sie in das Zielverzeichnis kopiert werden.

Das Auflisten der Dateien in ~/test/ana bestätigt, dass sie korrekt kopiert wurden.

 ls-l 

ls im Verzeichnis /test/ana

Der nächste Schritt besteht darin, das Dienstprogramm ana zu testen, indem Sie es im Verzeichnis ~/test/ana aufrufen.

Test des Dienstprogramms ana im Verzeichnis /test/ana

Das Dienstprogramm funktioniert wie erwartet, was großartig ist. Allerdings stimmen die Berechtigungen nicht. Die Anforderung besteht darin, Mitgliedern der Gruppe geek Lese- und Ausführungsberechtigungen zuzuweisen und anderen Benutzern nur Ausführungsberechtigungen zu gewähren.

Wir können diese beiden Probleme ganz einfach mit dem folgenden Befehl angehen. Beachten Sie die Verwendung von sudo zum Ausführen des Befehls mit Root-Berechtigungen. Die Optionen -o und -g und erfordern dies. Wir werden nach unserem Passwort gefragt, wenn wir den Befehl ausgeben.

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

install-Befehl mit Backup-Optionen und Premissions-Einstellungen

  • Die Option -b (Backup) erstellt Backups der Dateien, bevor sie überschrieben werden.
  • Die Option -S (Suffix) definiert das Suffix für die Sicherungsdateien. Wenn Sie kein Suffix angeben, wird eine ~ (Tilde) verwendet. Wir bitten die install , das Suffix .bak zu verwenden.
  • Wir setzen den Eigentümer der Datei mit der Option -o (Eigentümer) auf dave .
  • Die Option -g (Gruppe) erfordert den Namen einer Gruppe. Dies wird zur Eigentümergruppe der Dateien. Die Gruppe, die wir verwenden werden, heißt geek .
  • Die Option -m (Modus) legt die Dateimodi für die Dateien unter Verwendung der standardmäßigen numerischen chmod -Syntax fest.

Wir müssen die Option -D (Verzeichnisse erstellen) nicht mehr verwenden, da wir wissen, dass das Testverzeichnis bereits existiert. Wir haben auch die Option -v (ausführlich) weggelassen. Das Auflisten der Dateien in unserem Verzeichnis ~/test/ana zeigt uns die Dateidetails:

 ls-l 

ls im Verzeichnis /test/ana

Dies bestätigt, dass alle unsere Anforderungen erfüllt wurden.

  • Die Dateien wurden in das Testverzeichnis kopiert.
  • Die Berechtigungen wurden korrekt gesetzt.
  • dave ist der Eigentümer der Dateien.
  • Die geek -Gruppe ist die Eigentümergruppe der beiden Dateien.
  • Von jeder Datei mit den Namen ana.bak und Words.db.bak wurden Sicherungskopien erstellt.
Anzeige

All dies wurde durch die Verwendung eines einzigen Befehls erreicht. Sauber.

Unser Programmierer nimmt einige letzte Änderungen am Dienstprogramm vor und kompiliert es neu. Die geänderten Dateien müssen aus dem Verzeichnis ~/work in das Verzeichnis ~/test/ana kopiert werden. Wir können dies tun, indem wir die Option -C (Vergleichen) verwenden. Wenn Quelldatei und Zieldatei identisch sind, wird die Quelldatei nicht kopiert.

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

install-Befehl mit der Vergleichsoption -C

Das Auflisten der Dateien im Zielverzeichnis zeigt uns, dass sich die Dateigröße der ana -Datei geändert hat. Sie ist größer als die ana.bak -Datei. Der Zeitstempel auf ana hat sich ebenfalls geändert. Diese Änderungen sind darauf zurückzuführen, dass die neue Version der Datei hierher kopiert wurde.

 ls-l 

ls in /test/ana mit dem Dienstprogramm test fo ana

Die Dateigröße und der Zeitstempel der Words.db -Datei haben sich nicht geändert. An der Words.db -Datei wurden keine Änderungen vorgenommen, sodass sie nicht kopiert wurde. Bei einem Projekt mit vielen Dateien kann die Option -C (Vergleichen) viel Zeit und Festplattenwechsel sparen, indem nur die Dateien kopiert werden, die geändert wurden.

Der Programmierer hat erneut getestet, ob das Dienstprogramm ana weiterhin funktioniert.

Es ist an der Zeit, install zu verwenden, um die Dateien in das Verzeichnis /usr/local/bin zu kopieren. Dadurch wird das neue Dienstprogramm für alle Benutzer dieses Linux-Computers verfügbar. Wir wissen, dass /usr/local/bin existiert, also müssen wir dieses Verzeichnis nicht erstellen. Wir können eine modifizierte Version unseres letzten Befehls verwenden.

Anzeige

Wir haben das Zielverzeichnis in /usr/local/bin geändert. Wir haben die Option -C (Vergleichen) entfernt, weil es noch keine Kopien dieser Dateien im Zielverzeichnis gibt, es also nichts zu vergleichen gibt. Ebenso gibt es nichts zu sichern, also können wir die Option -b (Sicherung) und die Option -S (Suffix) entfernen.

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

Installieren Sie Dateien nach /usr/local/bin

Wir können auflisten, dass die Dateien in /usr/local/bin angekommen sind:

 ls-l 

ls von /usr/local/bin

Und als letzten Test wechseln wir das Verzeichnis in unser Home-Verzeichnis und sehen, ob wir unser neues Dienstprogramm von dort aus aufrufen können.

Test eines Dienstprogramms

Beachten Sie, dass wir dem Befehl ana kein ./ mussten, was bedeutet, dass er von /usr/local/bin ausgeführt wird. Mission erfüllt.

Wir haben erwähnt, dass install redundante Symboltabellen und anderes Gepäck aus der Binärdatei entfernen kann, um sie zu verkleinern. Lass uns das jetzt tun. Beachten Sie, dass der folgende Befehl Words.db nicht enthält. Dies liegt daran, dass Words.db eine Datenbankdatei und keine ausführbare Binärdatei ist. Um die Binärdatei zu ana und zu verkleinern, können wir den folgenden Befehl verwenden. Wir haben die Option -s (shrink) mit einem kleinen „s“ hinzugefügt. Wir haben die Option -b (Backup) und die Option -S (Suffix) mit einem großen „S“ wieder hinzugefügt.

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

Installationsoption mit der Option -s strip

Anzeige

Das Auflisten der Dateien in /usr/local/bin ermöglicht es uns, die Größe der ana -Datei mit ihrer Sicherungsversion zu vergleichen. Die ana -Datei wurde auf fast 60 % ihrer vorherigen Größe reduziert.

 ls -l /usr/local/bin 

ls im Arbeitsverzeichnis

In Summe

Der install -Befehl ist für eine hübsche Nischennutzung geeignet. Für viele Menschen wird es nicht Tag für Tag oder möglicherweise von Monat zu Monat verwendet. Trotzdem ist der Befehl install ein gutes Werkzeug, mit dem man vertraut sein und das man in seinem Trickarsenal haben sollte. Wenn Sie es brauchen, belohnt es Ihre Lernkurve mit Effizienzsteigerungen, Einfachheit und einfach weniger Tastenanschlägen.

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten