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.