So kopieren Sie Dateien mit dem Befehl „install“ unter Linux

install ist ein vielseitiger Befehl zum Kopieren von Dateien in Linux und macOS. Es ist perfekt für Power-User, die nach Effizienz suchen. Lesen Sie diesen Artikel, um zu erfahren, wie Sie intelligenter und nicht härter arbeiten.

Warten Sie – nicht zum Installieren von Software?

Die install Befehl hat möglicherweise den irreführenden Namen aller Linux-Befehle. Es installiert keine Software. Wenn Sie versuchen, ein Softwarepaket über die Befehlszeile in Ubuntu oder einer anderen Debian-basierten Distribution zu installieren, verwenden Sie die apt-get Befehl. Verwenden Sie bei anderen Linux-Distributionen stattdessen das Paketverwaltungstool Ihrer Linux-Distribution – für example, dnf An Fedora oder zypper auf openSUSE.

Was macht die Installation?

In einer Nussschale install kombiniert Elemente aus dem cp (Kopieren), chown (Besitzer wechseln), chmod (Modus ändern), mkdir (Verzeichnis erstellen), und strip (Streifensymbole) Befehle. Sie können alle Funktionen in einer einzigen Aktion verwenden.

Die install Befehl kann:

  • Kopieren Sie Dateien wie die cp Befehl.
  • Wählen Sie aus, ob vorhandene Dateien überschrieben werden sollen.
  • Erstellen Sie das Zielverzeichnis, wenn es nicht existiert, wie mkdir.
  • Legen Sie die Benutzerberechtigungs-Flags der Dateien fest, genau wie die chmod Befehl.
  • Legen Sie den Eigentümer der Dateien fest, genau wie die chown Befehl.
  • Entfernen Sie nicht unbedingt notwendiges Gepäck aus ausführbaren Dateien, genau wie die strip Befehl.

Trotz all dieser Funktionalität ist die install Befehl hat auch nicht viele Optionen zu kämpfen.

Wann würden Sie es verwenden?

Die install Befehl wird wahrscheinlich nicht jeden Tag verwendet. Es ist nützlich, aber nur für bestimmte Situationen. Ein Szenario, in dem install zur Geltung kommt, ist die Softwareentwicklung. Angenommen, Sie programmieren ein neues Dienstprogramm. Sie müssen Tests außerhalb der Entwicklungsumgebung durchführen. Dazu müssen Sie die neuen Programmdateien in ein Testverzeichnis kopieren. Das Testverzeichnis muss möglicherweise erstellt werden und Sie müssen die richtigen Berechtigungen und das Eigentumsrecht für die Dateien festlegen.


Da die Entwicklung eine iterative Aktivität ist, können Sie diese Abfolge von Aktionen am Ende viele, viele Male ausführen. Die install Command erledigt die ganze schwere Arbeit für Sie. Wenn Ihr neues Dienstprogramm schließlich bereit zur Bereitstellung ist, können Sie install um es mit den richtigen Berechtigungen an seinen endgültigen Arbeitsspeicherort zu kopieren.

Ein Beispiel

Ein Programmierer arbeitet an einem solchen neuen Dienstprogramm namens ana. Es besteht aus einer ausführbaren Binärdatei und einer Datenbank. Nach dem Testen muss es kopiert werden nach /usr/local/bin um es allen Benutzern des Linux-Systems zur Verfügung zu stellen. Sie müssen die Dateinamen und Verzeichnispfade in unserem example für die Dateien und Pfade, die Sie auf Ihrem Computer verwenden, wenn Sie install.

Bis zur Freigabe wird es in einem Verzeichnis namens . getestet ~/test/ana. Mitglieder von geek Gruppe hat Lese- und Ausführungsberechtigungen. Andere Benutzer haben auch Lese- und Ausführungsberechtigungen. Die install Befehl verwendet dieselbe numerische Darstellung für Berechtigungen wie chmod tut. Unser Programmierer hat entschieden, dass die Berechtigungen wie folgt gesetzt werden müssen:

  • Besitzer: Lesen, schreiben und ausführen.
  • Gruppe: Lesen und ausführen.
  • Andere: Nur ausführen.

So verwenden Sie die install Befehl

Das Arbeitsverzeichnis unseres fiktiven Programmierers ist ~/work. Er hat das Programm geschrieben, kompiliert und eine Binärdatei namens . erstellt ana. Er hat bereits die Datenbankdatei erstellt, die ana arbeitet mit, Words.db. Damit sind beide Dateien zum Testen bereit. Schauen wir sie uns an:

ls -l ana Words.db

Die ana Das Dienstprogramm, das er gerade geschrieben hat, erstellt Anagramme aus einer Phrase, die auf der Befehlszeile bereitgestellt wird. Verifizierungstests sind recht einfach.

Test eines Dienstprogramms im Arbeitsverzeichnis

Unser Programmierer hat aufgerufen ana mit dem Satz „Keks“ und alles scheint gut. Diese beiden Dateien will er nun in die kopieren ~/test/ana Verzeichnis, um zu sehen, ob das neue Dienstprogramm außerhalb der Entwicklungsumgebung ordnungsgemäß funktioniert. Er gibt folgenden Befehl aus:

install -D -v ana Words.db -t ~/test/ana

Befehl nach /test/ana . installieren

Die in der Befehlszeile verwendeten Optionen waren:

  • D: Erstellen Sie Verzeichnisse, einschließlich der übergeordneten Verzeichnisse, falls erforderlich.
  • v: Ausführlich, listet jedes Verzeichnis während der Erstellung und jede Dateikopie während der Ausführung auf.
  • T: Zielverzeichnis.


Wir können das sehen install schafft die ~/test Verzeichnis und erstellt dann das ~/test/ana Verzeichnis. Die Dateien werden nacheinander aufgelistet, während sie in das Zielverzeichnis kopiert werden.

Auflisten der Dateien in ~/test/ana bestätigt, dass sie richtig kopiert wurden.

ls -l

ls im Verzeichnis /test/ana

Der nächste Schritt besteht darin, die ana Dienstprogramm, indem Sie es im ~/test/ana Verzeichnis.

Test eines ana-Dienstprogramms im Verzeichnis /test/ana

Das Dienstprogramm funktioniert wie erwartet, was großartig ist. Die Berechtigungen sind jedoch nicht korrekt. Die Anforderung besteht darin, Mitglieder der Gruppe festzulegen geek Lese- und Ausführungsberechtigungen zu haben, und andere Benutzer dürfen nur ausführen.

Wir können beide Probleme ganz einfach mit dem folgenden Befehl lösen. Beachten Sie die Verwendung von sudo um den Befehl mit Root-Berechtigungen auszuführen. Die -o und -g und Optionen erfordern dies. Wir werden nach unserem Passwort gefragt, wenn wir den Befehl ausgeben.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

install-Befehl mit Backup-Optionen und Voreinstellungen

  • Die -b (Backup) erstellt Backups der Dateien, bevor sie überschrieben werden.
  • Die -S (Suffix) Option definiert das Suffix für die Backup-Dateien. Wenn Sie kein Suffix angeben a ~ (Tilde) verwendet. Wir fragen install ein Suffix von verwenden .bak.
  • Wir setzen den Eigentümer der Datei auf dave Verwendung der -o (Eigentümer) Option.
  • Die -g Die Option (Gruppe) erfordert den Namen einer Gruppe. Dies wird die Eigentümergruppe der Dateien. Die Gruppe, die wir verwenden werden, heißt geek.
  • Die -m (mode) Option legt die Dateimodi für die Dateien fest, unter Verwendung des Standards chmod numerische Syntax.

Wir brauchen die nicht mehr -D (Verzeichnisse erstellen), da wir wissen, dass das Testverzeichnis bereits existiert. Die haben wir auch weggelassen -v (ausführliche) Option. Auflistung der Dateien in unserem ~/test/ana Verzeichnis zeigt uns die Dateidetails:

ls -l

ls im Verzeichnis /test/ana

Dies bestätigt, dass alle unsere Anforderungen erfüllt wurden.

  • Die Dateien wurden in das Testverzeichnis kopiert.
  • Die Berechtigungen wurden richtig gesetzt.
  • dave ist der Eigentümer der Dateien.
  • Die geek group ist die Eigentümergruppe der beiden Dateien.
  • Von jeder Datei wurden Sicherungskopien erstellt, die als ana.bak und Words.db.bak bezeichnet werden.


All dies wurde durch die Verwendung eines einzigen Befehls erreicht. Sauber.

Unser Programmierer nimmt einige letzte Änderungen am Dienstprogramm vor und kompiliert neu. Die geänderten Dateien müssen in das ~/test/ana Verzeichnis aus dem ~/work Verzeichnis. Wir können dies tun, indem wir die -C (vergleichen) Möglichkeit. Wenn Quelldatei und Zieldatei identisch sind, wird die Quelldatei nicht kopiert.

sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

install-Befehl mit der Vergleichsoption -C

Die Auflistung der Dateien im Zielverzeichnis zeigt uns, dass die Dateigröße der ana Datei hat sich geändert. Es ist größer als das ana.bakDatei. Der Zeitstempel auf ana hat sich auch geändert. Diese Änderungen sind darauf zurückzuführen, dass die neue Version der Datei hierher kopiert wurde.

ls -l

ls in /test/ana mit dem Dienstprogramm test fo ana

Die Dateigröße und der Zeitstempel der Words.db Datei haben sich nicht geändert. Es wurden keine Änderungen an der vorgenommen Words.db Datei, wurde also nicht kopiert. Bei einem Projekt mit vielen Dateien die -C (vergleichen) kann viel Zeit und Festplattenwechsel sparen, indem nur die geänderten Dateien kopiert werden.

Der Programmierer hat erneut getestet, dass die ana Dienstprogramm weiterhin in Betrieb.

Es ist Zeit zu verwenden install um die Dateien in die zu kopieren /usr/local/bin Verzeichnis. Dadurch wird das neue Dienstprogramm für alle Benutzer dieses Linux-Computers verfügbar. Wir wissen das /usr/local/bin existiert, also brauchen wir dieses Verzeichnis nicht zu erstellen. Wir können eine modifizierte Version unseres letzten Befehls verwenden.


Wir haben das Zielverzeichnis zu be geändert /usr/local/bin. Wir haben die entfernt -C (compare) Option, da im Zielverzeichnis noch keine Kopien dieser Dateien vorhanden sind, es also nichts Vergleichbares gibt. Ebenso gibt es nichts zu sichern, sodass wir das entfernen können -b (Backup-)Option und die -S (Suffix)-Option.

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

Installiere das Kopieren von Dateien nach /usr/local/bin

Wir können auflisten, dass die Dateien angekommen sind /usr/local/bin:

ls -l

ls von /usr/local/bin

Und als letzten Test ändern wir das Verzeichnis in unser Home-Verzeichnis und sehen, ob wir unser neues Dienstprogramm von dort aus aufrufen können.

Test eines Dienstprogramms

Beachten Sie, dass wir das nicht voranstellen mussten ana Befehl mit ./ was bedeutet, dass es von läuft /usr/local/bin. Mission erfüllt.

Wir haben erwähnt, dass install redundante Symboltabellen und anderes Gepäck aus der Binärdatei entfernen kann, um die Größe zu reduzieren. Machen wir das jetzt. Beachten Sie, dass der folgende Befehl Words.db nicht enthält. Dies liegt daran, dass Words.db eine Datenbankdatei und keine ausführbare Binärdatei ist. So kopieren und verkleinern Sie die Binärdatei ana wir können den folgenden Befehl verwenden. Wir haben die Option -s (Shrink) mit einem Kleinbuchstaben „s“ hinzugefügt. Wir haben die Option -b (Backup) und die Option -S (Suffix) mit einem Großbuchstaben „S“ wieder hinzugefügt.

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

installiere Option mit -s Strip Option


Auflisten der Dateien in /usr/local/bin ermöglicht es uns, die Größe der ana Datei mit ihrer Backup-Version. Die ana Datei wurde auf fast 60 % ihrer vorherigen Größe reduziert.

ls -l /usr/local/bin

ls im Arbeitsverzeichnis

Zusammenfassend

Die … Die install Befehl bietet eine hübsche Nischenanwendung. Für viele Menschen wird es nicht Tag für Tag oder möglicherweise von Monat zu Monat verwendet. Trotzdem ist die install Command ist ein gutes Werkzeug, mit dem Sie vertraut sein und es in Ihrem Arsenal an Tricks haben sollten. Für die Gelegenheiten, in denen Sie es brauchen, belohnt es Ihre Lernkurve mit Effizienzsteigerungen, Einfachheit und einfach weniger Tastenanschlägen.

Linux-Befehle
DateienTeer · pv · Katze · tac · chmod · grep · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · stat · ls · fstab · Echo · weniger · chgrp · chown · rev · aussehen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · srm
Prozessealias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · bei · Charge · kostenlos · welcher · dmesg · chfn · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · Jawohl · töten · Schlaf · sudo · es ist · Zeit · groupadd · Benutzermod · Gruppen · lshw · abschalten · neu starten · Halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzungnetstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · curl · wget · Wer · Wer bin ich · w · iptables · ssh-keygen · ufw

Beste Linux-Laptops für Entwickler und Enthusiasten

Related Posts