Linux / Befehl install: Dateien kopieren und Attribute festlegen
install kopiert Dateien und setzt dabei Attribute wie Modus, Eigentümer und Gruppe; mit -d erstellt es Verzeichnisse. Es ist ein Werkzeug zur Bereitstellung einzelner Dateien und verwaltet weder Softwarepakete noch deren Abhängigkeiten.
Die Beispiele verwenden das Verhalten von GNU Coreutils. Prüfen Sie install --help, man install und die Dokumentation Ihrer Distribution, wenn Portabilität oder eine versionsspezifische Option wichtig ist.
Ergänzende Befehle und Anwendungsfälle finden Sie in Wesentliche Linux-Befehle: Eine praktische Referenz nach Aufgaben.
Was ist der Befehl install?
GNU install kopiert Dateien, während ein gewünschter Modus, Besitzer, Gruppe, Zeitstempelrichtlinie oder Verzeichnislayout angewendet wird. Es ist ein Bereitstellungswerkzeug, kein Paketmanager: Es löst keine Abhängigkeiten und verfolgt keine Paketinstallation oder -entfernung.
Grundlegende Syntax
install [OPTION]... SOURCE DESTINATION install [OPTION]... SOURCE... DIRECTORY install -d [OPTION]... DIRECTORY...
Setzen Sie Anführungszeichen um Pfade, die Leerzeichen enthalten. Wenn unterstützt, setzen Sie -- vor Operanden, die mit einem Bindestrich beginnen, damit sie nicht als Optionen interpretiert werden.
Grundlegende Verwendung von install
Installieren Sie ein ausführbares Programm
Kopieren Sie die Binärdatei in einen Systempfad und geben Sie den vorgesehenen Ausführungsmodus an. Verwenden Sie sudo ausdrücklich, wenn das Ziel erhöhte Berechtigungen erfordert.
sudo install -m 0755 mytool /usr/local/bin/mytool
Installieren Sie eine Konfigurationsdatei
Konfigurationsdateien sollten in der Regel nicht ausführbar sein. Definieren Sie eine Überschreibungs- und Rollback-Richtlinie, bevor Sie eine laufende Konfiguration ersetzen.
sudo install -m 0644 mytool.conf /etc/mytool/mytool.conf
Erstellen Sie ein Installationsverzeichnis
Mit -d erstellt install Verzeichnisse anstelle des Kopierens einer Datei und kann Modus, Eigentümer und Gruppe zuweisen.
sudo install -d -m 0750 -o myapp -g myapp /var/lib/myapp
Überprüfen Sie den Modus nach der Installation
install führt Kopieren von Dateien und das Setzen von Berechtigungen gleichzeitig durch, zeigt jedoch in der Regel keine Erfolgsmeldung an.
printf '#!/bin/sh\n' > demo-tool install -m 755 demo-tool demo-tool-installed stat -c '%a %n' demo-tool-installed
Beispielausgabe:
755 demo-tool-installed
Dieses Ergebnis überprüft nur den Berechtigungsmodus der Zieldatei. Überprüfen Sie separat, ob das Skript tatsächlich korrekt ausgeführt wird und ob der Installationsort mit dem Dienstpfad übereinstimmt.
Wichtige Optionen
| Option | Zweck |
|---|---|
-m MODE |
Setzen Sie den installierten Modus. |
-o OWNER |
Setzen Sie den Besitzer, wenn erlaubt. |
-g GROUP |
Setzen Sie die Gruppe. |
-d |
Erstellen Sie Verzeichnisse und erforderliche übergeordnete Verzeichnisse. |
-D |
Erstellen Sie die fehlenden übergeordneten Verzeichnisse des endgültigen Zielorts und installieren Sie die Datei. |
-t DIR |
Geben Sie das Zielverzeichnis an. |
-p |
Bewahren Sie Zugriffs- und Änderungszeiten der Quelle auf. |
-s |
Symboldaten während der Installation entfernen. |
-C |
Vermeiden Sie es, ein Ziel zu ändern, wenn Inhalt und ausgewählte Attribute bereits übereinstimmen. |
Lange Optionen machen überprüfte Skripte oft leichter verständlich. Wenn ein Skript auf Nicht-GNU-Systemen laufen muss, überprüfen Sie jede nicht-POSIX-Option auf der Zielplattform.
Praktische Beispiele
Installieren Sie eine Datei mit ihrem übergeordneten Pfad
Die Option -D erstellt übergeordnete Verzeichnisse für den endgültigen Datei-Pfad. Verwenden Sie einen separaten install -d Schritt, wenn Eigentum oder Modi der übergeordneten Verzeichnisse unabhängig gesteuert werden müssen.
sudo install -D -m 0644 myapp.service /etc/systemd/system/myapp.service
Mehrere Dateien in ein Verzeichnis installieren
Die -t-Form identifiziert das Ziel eindeutig vor einer generierten Quellliste.
sudo install -m 0644 -t /usr/local/share/myapp templates/*.html
Installierte Attribute überprüfen
Überprüfen Sie den Pfad, Modus, Eigentümer, Gruppe, Dateityp und die zur Laufzeit erforderlichen Abhängigkeiten des bereitgestellten Artefakts.
stat -c '%A %U:%G %n' /usr/local/bin/mytool file /usr/local/bin/mytool
install und verwandte Befehle
| Befehl oder Methode | Hauptrolle | Geeignet für |
|---|---|---|
install |
Kopieren und Attribute festlegen | Installation und Bereitstellung erstellen |
cp |
Allgemeines Dateikopieren | Attribute werden separat verwaltet |
mkdir |
Gewöhnliche Verzeichnisse erstellen | Arbeitsbereich-Verzeichnisbäume |
apt oder dnf |
Pakete und Abhängigkeiten verwalten | Vom Distributionsanbieter bereitgestellte Software |
Wichtige Hinweise
Es ist kein Paketmanager
Mit install kopierte Dateien werden nicht automatisch für Updates, Abhängigkeitsänderungen oder sauberes Entfernen verfolgt.
Nicht auf den Standardmodus verlassen
Geben Sie -m ausdrücklich an für Konfigurationsdateien, Geheimnisse und ausführbare Dateien, sodass die Berechtigungen ihrer Rolle entsprechen.
Das Ersetzen aktiver Dateien planen
Das direkte Überschreiben einer aktiven Konfigurations- oder ausführbaren Datei kann Ausfälle verursachen. Verwenden Sie gegebenenfalls Backup, Validierung, atomare Umschaltung und Rollback.
FAQ
Verwaltet install Softwarepakete?
Nein. Es kopiert Dateien und wendet Attribute an; es verwaltet keine Paketabhängigkeiten.
Warum install anstelle von cp verwenden?
Es kombiniert das Kopieren mit expliziten Modi, Besitzrechten und der Erstellung des Zielverzeichnisses.
Kann es nur ein Verzeichnis erstellen?
Ja. Verwenden Sie install -d DIRECTORY und fügen Sie bei Bedarf -m, -o oder -g hinzu.
Wie kann ich die Zeitstempel der Quelle beibehalten?
Verwenden Sie -p oder --preserve-timestamps.
Weitere Angaben zu Syntax, Implementierung und Verfügbarkeit finden Sie unter GNU Coreutils install Dokumentation und GNU Coreutils-Handbuch.




