Das Kommandozeilenwerkzeug install ist Bestandteil der GNU Coreutils und wurde speziell für das Installieren von Programmen, Skripten und Dateien entwickelt. Es vereint die Funktionen von cp, mkdir, chmod und chown in einem einzigen, leistungsstarken Befehl. Dies vereinfacht viele typische Aufgaben bei der Softwarebereitstellung.


Grundlegende Verwendung

install [OPTIONEN]... QUELLE ZIEL
install [OPTIONEN]... QUELLE... VERZEICHNIS
install [OPTIONEN]... -t VERZEICHNIS QUELLE...

Häufig genutzte Optionen

Option

Beschreibung

-D

Erstellt automatisch alle übergeordneten Verzeichnisse

-d

Erstellt Verzeichnisse anstelle von Dateien zu kopieren

-m MODUS

Setzt Dateirechte (z. B. 755, 644)

-o EIGENTÜMER

Setzt den Dateibesitzer (erfordert Root-Rechte)

-g GRUPPE

Setzt die Dateigruppe (erfordert Root-Rechte)

-t VERZEICHNIS

Zielverzeichnis für mehrere Quelldateien

-v

Zeigt jeden ausgeführten Schritt an (verbose)

-C

Kopiert nur, wenn sich Quelldatei und Zieldatei unterscheiden


Einschränkungen: Was install nicht kann

Das Kommando install kann keine kompletten Verzeichnisse samt Inhalt kopieren. Wenn du ein gesamtes Verzeichnis mit allen Unterdateien übernehmen möchtest, musst du stattdessen cp -a verwenden und die Eigentümer- und Rechtevergabe separat erledigen.

Beispielskript zum Kopieren eines Verzeichnisses

Pfad: ~/scripts/cp_dir.sh

#!/bin/bash
# Dokumentation anzeigen, wenn das Skript ohne Parameter aufgerufen wird
if [ "$#" -ne 3 ]; then
  echo "Verwendung: ./cp_dir.sh USER:GROUP /pfad/zur/quelle /pfad/zum/ziel"
  echo "Kopiert ein Verzeichnis rekursiv, setzt Eigentümer:Gruppe und Berechtigungen."
  exit 1
fi

# Argumente zuweisen
EIGENTUM="$1"     # Format: benutzer:gruppe
QUELLE="$2"       # Quellverzeichnis
ZIEL="$3"         # Zielverzeichnis

# Zielverzeichnis anlegen mit Besitzer und Gruppe
install -d -o "${EIGENTUM%%:*}" -g "${EIGENTUM##*:}" "$ZIEL"

# Inhalt rekursiv kopieren
cp -a "$QUELLE/." "$ZIEL/"

# Besitzer und Gruppe rekursiv setzen
chown -R "$EIGENTUM" "$ZIEL"

# Standardrechte auf 755 setzen (anpassbar)
chmod -R 755 "$ZIEL"

Praktische Beispiele

1. Ein Skript mit bestimmten Rechten installieren

Mit install:

install -m 755 myscript.sh /usr/local/bin/myscript

Ohne install:

cp myscript.sh /usr/local/bin/myscript
chmod 755 /usr/local/bin/myscript

2. Binärdatei mit automatischer Verzeichniserstellung installieren

Mit install:

install -D -m 755 myapp /usr/local/bin/myapp

Ohne install:

mkdir -p /usr/local/bin
cp myapp /usr/local/bin/myapp
chmod 755 /usr/local/bin/myapp

3. Mehrere Verzeichnisse anlegen

Mit install:

install -d /opt/myapp/config /opt/myapp/data

Ohne install:

mkdir -p /opt/myapp/config /opt/myapp/data

4. Datei mit Besitzer und Gruppe installieren

Mit install:

install -o $USER -g $GROUP -m 644 config.ini /etc/myapp/

Ohne install:

cp config.ini /etc/myapp/
chown -R $USER:$GROUP /etc/myapp/config.ini
chmod 644 /etc/myapp/config.ini

Vorteile von install gegenüber Einzelbefehlen

  • Kombiniert Kopieren, Rechtevergabe und Besitzwechsel in einem Schritt
  • Ersetzt mehrere gängige Befehle: cp, chmod, chown, mkdir
  • Besonders praktisch für Skripte, Makefiles oder Installationsroutinen

Installation von install

install ist standardmäßig auf Debian-Systemen enthalten. Falls nicht:

apt install coreutils