Der Befehl install
ist ein vielseitiges Werkzeug zum Kopieren von Dateien unter Linux und macOS. Er ist besonders nützlich für erfahrene Benutzer, die Wert auf Effizienz legen. Dieser Artikel erläutert, wie Sie diesen Befehl optimal nutzen können, um Ihre Arbeitsabläufe zu optimieren.
Nicht zum Installieren von Software gedacht?
Der Name des Befehls install
kann leicht in die Irre führen. Er dient nicht der Installation von Softwarepaketen. Um Software unter Ubuntu oder anderen Debian-basierten Systemen zu installieren, verwenden Sie den Befehl apt-get
. Bei anderen Linux-Distributionen greifen Sie auf den jeweiligen Paketmanager zurück, wie z.B. dnf
unter Fedora oder zypper
unter openSUSE.
Was bewirkt der Befehl install?
Im Wesentlichen kombiniert install
Funktionen der Befehle cp
(Kopieren), chown
(Besitzer ändern), chmod
(Zugriffsrechte ändern), mkdir
(Verzeichnis erstellen) und strip
(Symbole entfernen). All diese Operationen lassen sich mit einem einzigen Befehl ausführen.
Der Befehl install
ist in der Lage:
- Dateien zu kopieren, ähnlich wie
cp
. - Zu entscheiden, ob existierende Dateien überschrieben werden sollen.
- Zielverzeichnisse zu erstellen, falls diese noch nicht existieren (ähnlich wie
mkdir
). - Die Zugriffsrechte von Dateien festzulegen (wie
chmod
). - Den Besitzer der Dateien zu bestimmen (wie
chown
). - Nicht benötigte Informationen aus ausführbaren Dateien zu entfernen (ähnlich wie
strip
).
Trotz seines Funktionsumfangs bietet der Befehl install
eine überschaubare Anzahl von Optionen.
Wann ist der Einsatz sinnvoll?
Der Befehl install
ist kein alltägliches Werkzeug, sondern kommt in spezifischen Situationen zum Einsatz. Ein typisches Anwendungsgebiet ist die Softwareentwicklung. Angenommen, Sie entwickeln ein neues Programm und möchten es außerhalb der Entwicklungsumgebung testen. Hierfür müssen Sie die Programmdateien in ein Testverzeichnis kopieren, das möglicherweise noch erstellt werden muss, und die korrekten Zugriffsrechte sowie den Besitzer festlegen.
Da Entwicklung ein iterativer Prozess ist, müssen Sie diese Schritte möglicherweise wiederholt durchführen. Der Befehl install
automatisiert diese Aufgaben. Ist Ihr Programm bereit für die Veröffentlichung, können Sie es mit install
an seinen endgültigen Speicherort kopieren und die korrekten Berechtigungen zuweisen.
Ein praktisches Beispiel
Ein Entwickler arbeitet an einem neuen Dienstprogramm namens ana
, bestehend aus einer ausführbaren Datei und einer Datenbank. Nach dem Testen soll es nach /usr/local/bin
kopiert werden, um es allen Benutzern des Systems zugänglich zu machen. Ersetzen Sie in den folgenden Beispielen die Dateinamen und Verzeichnispfade durch Ihre eigenen.
Vor der Veröffentlichung wird das Programm im Verzeichnis ~/test/ana
getestet. Mitglieder der Gruppe „Geek“ haben Lese- und Ausführungsrechte, ebenso wie andere Benutzer. Die gewünschten Berechtigungen sind:
- Besitzer: Lesen, Schreiben und Ausführen
- Gruppe: Lesen und Ausführen
- Andere: Nur Ausführen
Anwendung des Befehls install
Das Arbeitsverzeichnis des Entwicklers ist ~/work
. Dort befinden sich die Binärdatei ana
und die Datenbankdatei Words.db
. Betrachten wir die Dateien:
ls -l ana Words.db
Das Dienstprogramm ana
erstellt Anagramme. Ein kurzer Test zeigt, dass es funktioniert:
Um das Programm außerhalb der Entwicklungsumgebung zu testen, kopiert der Entwickler die Dateien nach ~/test/ana
mit folgendem Befehl:
install -D -v ana Words.db -t ~/test/ana
Die verwendeten Optionen sind:
-D
: Erstellt Verzeichnisse, falls notwendig.-v
: Zeigt jeden Schritt der Verzeichnis- und Dateikopie an.-t
: Gibt das Zielverzeichnis an.
Der Befehl erstellt zuerst ~/test
und dann ~/test/ana
. Anschließend werden die Dateien kopiert.
Eine Auflistung der Dateien in ~/test/ana
bestätigt die erfolgreiche Kopie:
ls -l
Der nächste Schritt ist das Testen des Programms direkt aus dem Testverzeichnis:
Das Programm funktioniert, aber die Berechtigungen sind nicht korrekt. Der Gruppe „Geek“ sollen Lese- und Ausführungsrechte zugewiesen werden, andere Benutzer sollen nur Ausführungsrechte haben.
Dies lässt sich mit folgendem Befehl und Root-Rechten lösen (sudo
):
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
Die neuen Optionen sind:
-b
: Erstellt Backups der Dateien vor dem Überschreiben.-S
: Definiert das Suffix für die Backups. Hier wird „.bak“ verwendet.-o
: Setzt den Besitzer der Dateien auf „dave“.-g
: Setzt die Besitzergruppe auf „geek“.-m
: Setzt die Dateimodi (Zugriffsrechte) mit der numerischen Darstellung vonchmod
.
Die Option -D
wird nicht mehr benötigt, da das Verzeichnis existiert. Auch die Option -v
wird weggelassen.
Eine Auflistung von ~/test/ana
zeigt die neuen Dateieigenschaften:
ls -l
Alle Anforderungen wurden erfüllt:
- Die Dateien wurden ins Testverzeichnis kopiert.
- Die Zugriffsrechte sind korrekt gesetzt.
- Der Besitzer ist „dave“.
- Die Besitzergruppe ist „geek“.
- Backups wurden mit dem Suffix „.bak“ erstellt.
All dies wurde mit einem einzigen Befehl erreicht.
Nach einigen letzten Änderungen am Programm und dem Neukompilieren müssen die geänderten Dateien von ~/work
nach ~/test/ana
kopiert werden. Hierbei hilft die Option -C
(compare):
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
Eine Auflistung des Zielverzeichnisses zeigt, dass sich die Dateigröße von ana
geändert hat, während die Größe von Words.db
gleich geblieben ist. Nur die geänderte Datei wurde kopiert.
ls -l
Die Option -C
spart Zeit und Festplattenplatz, indem nur geänderte Dateien kopiert werden.
Nach dem erneuten Testen ist es Zeit, die Dateien mit install
nach /usr/local/bin
zu kopieren:
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
Die Dateien sind nun in /usr/local/bin
:
ls -l
Ein letzter Test von einem anderen Verzeichnis aus zeigt, dass das Programm nun global verfügbar ist:
Abschließend kann install
unnötige Informationen aus Binärdateien entfernen, um ihre Größe zu reduzieren. Der folgende Befehl kopiert ana
und verkleinert die Datei:
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin
Eine Auflistung von /usr/local/bin
zeigt, dass die Datei ana
nun deutlich kleiner ist:
ls -l /usr/local/bin
Zusammenfassung
Der Befehl install
ist ein spezialisiertes Werkzeug, das nicht jeden Tag benötigt wird. Dennoch ist es ein nützlicher Befehl, den man kennen sollte. Wenn Sie ihn brauchen, wird er Ihre Arbeit durch Effizienz, Einfachheit und weniger benötigte Tastatureingaben erleichtern.