install
kopiert nicht nur Dateien, sondern ändert auch den Besitz und die Berechtigungen und entfernt optional Debugsymbole aus ausführbaren Dateien. Es kombiniert cp
mit chown
, chmod
und strip
. Es ist ein praktisches übergeordnetes Tool, mit dem eine allgemeine Abfolge elementarer Aufgaben ausgeführt werden kann.
Ein Vorteil von install
over cp
für die Installation von ausführbaren Dateien ist, dass, wenn das Ziel bereits vorhanden ist, die Zieldatei entfernt und eine neue erstellt wird. Dadurch werden alle aktuellen Eigenschaften wie Zugriffssteuerungslisten und -funktionen beseitigt, die sowohl als Vor- als auch als Nachteil betrachtet werden können. Wenn beim Aktualisieren von ausführbaren Dateien Instanzen dieser ausführbaren Datei ausgeführt werden, bleiben diese davon unberührt. Im Gegensatz dazu wird cp
die vorhandene Datei aktualisiert, sofern vorhanden. Bei den meisten Unix-Varianten schlägt dies mit dem Fehler EBUSY¹ fehl, wenn das Ziel eine laufende ausführbare Datei ist. In einigen Fällen kann es zum Absturz des Ziels kommen, da Codeabschnitte dynamisch geladen werden und das Ändern der Datei dazu führt, dass unsinniger Code geladen wird.
install
ist ein BSD-Befehl (hinzugefügt in 4.2BSD , dh in den frühen 1980er Jahren). Es wurde nicht von POSIX übernommen.
¹ “Textdatei belegt”. In diesem Zusammenhang bedeutet „Textdatei“ aus unklaren historischen Gründen „ausführbare Binärdatei“ .
Gilles 'SO - hör auf böse zu sein'
quelle
rm
mitcp
. Dies bedeutet, dass Dateien, die gerade verwendet werden, überschrieben werden können, indem die Verknüpfung zu ihnen aufgehoben wird (rm
).cp
allein würde einen fehler geben.Es bietet eine standardisierte Möglichkeit, den Besitz und die Berechtigungen einer Datei oder eines Verzeichnisses in einem einzigen Befehl zu ändern, während die Datei kopiert oder das Verzeichnis erstellt wird.
quelle
install
Führt eine Kopie durch, gefolgt von chown und chmod, alle separate Systemaufrufe, und verwendet kein Rename-in-Place (zumindest ab Coreutils 8.13 hat die GNU-Version dies nicht). Wenn Sie davon ausgehen, dass alles atomar abläuft, könnten Sie eine böse Überraschung erleben.Mit dem
install
Befehl können wir Dateien mit den gewünschten Berechtigungen kopierenBeispiel, das hauptsächlich beim Einrichten von ldap verwendet wird
Dies erspart uns das tun
chown ldap. /var/lib/ldap/DB_CONFIG
, wenn Sie mit kopiert haben,cp
dann müssen Sie auchchown
in diesem Szenarioquelle
Siehe die Manpage für
install
:Auszug
Andere nützliche Dinge, wie das Installieren mit bestimmten Eigentümern, Berechtigungen und das Beibehalten der Zeitstempel der Originaldateien, können ebenfalls mithilfe von erreicht werden
install
.Verweise
quelle
install
, anstatt nur die vorhandenen Berechtigungen beizubehalten, wie beicp