So kopieren Sie Dateien mit dem Befehl „install“ unter Linux
Veröffentlicht: 2022-01-29 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 arbeiten können – nicht härter.
Warten Sie – es ist nicht für die Installation von Software?
Der install
hat möglicherweise den irreführendsten Namen aller Linux-Befehle. Es installiert eigentlich keine Software. Wenn Sie versuchen, ein Softwarepaket über die Befehlszeile in Ubuntu oder einer anderen Debian-basierten Distribution zu installieren, verwenden Sie den Befehl apt-get
. Verwenden Sie bei anderen Linux-Distributionen stattdessen das Paketverwaltungstool Ihrer Linux-Distribution – zum Beispiel dnf
unter Fedora oder zypper
unter openSUSE.
Also, was macht die Installation?
Kurz gesagt kombiniert install
Elemente aus den Befehlen cp
(kopieren), chown
(Eigentümer ändern), chmod
(Modus ändern), mkdir
(Verzeichnis erstellen) und strip
(Symbole entfernen). Sie können Funktionen von all diesen in einer einzigen Aktion verwenden.
Der install
kann:
- Kopieren Sie Dateien wie den Befehl
cp
. - Wählen Sie aus, ob vorhandene Dateien überschrieben werden sollen.
- Erstellen Sie das Zielverzeichnis, wenn es nicht existiert, wie
mkdir
. - Setzen Sie die Benutzerberechtigungs-Flags der Dateien, genau wie der Befehl
chmod
. - Legen Sie den Eigentümer der Dateien fest, genau wie beim Befehl
chown
. - Entfernen Sie unnötigen Ballast aus ausführbaren Dateien, genau wie der
strip
Befehl.
Trotz all dieser Funktionalität hat der install
nicht allzu viele Optionen, mit denen er fertig werden muss.
Wann würden Sie es verwenden
Der install
wird wahrscheinlich nicht jeden Tag verwendet. Es ist nützlich, aber nur für bestimmte Situationen. Ein Szenario, in dem install
zum Tragen 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 Eigentumsrechte für die Dateien festlegen.
Da die Entwicklung eine iterative Aktivität ist, können Sie diese Abfolge von Aktionen viele, viele Male ausführen. Der install
erledigt die ganze schwere Arbeit für Sie. Wenn Ihr neues Dienstprogramm bereit zur Bereitstellung ist, können Sie schließlich install
verwenden, 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 nach /usr/local/bin
kopiert werden, um es für alle Benutzer des Linux-Systems verfügbar zu machen. Sie müssen die Dateinamen und Verzeichnispfade in unserem Beispiel durch die Dateien und Pfade ersetzen, die Sie auf Ihrem Computer verwenden, wenn Sie install
verwenden.
Bis es zur Veröffentlichung bereit ist, wird es in einem Verzeichnis namens ~/test/ana
getestet. Mitglieder der geek
-Gruppe haben Lese- und Ausführungsberechtigungen. Andere Benutzer haben ebenfalls Lese- und Ausführungsberechtigungen. Der install
Befehl verwendet dieselbe numerische Darstellung für Berechtigungen wie chmod
. Unser Programmierer hat entschieden, dass die Berechtigungen wie folgt gesetzt werden müssen:
- Eigentümer: Lesen, schreiben und ausführen.
- Gruppe: Lesen und ausführen.
- Andere: Nur ausführen.
So verwenden Sie den install
Das Arbeitsverzeichnis unseres fiktiven Programmierers ist ~/work
. Er hat das Programm geschrieben, kompiliert und eine Binärdatei namens ana
erstellt. Er hat bereits die Datenbankdatei Words.db
erstellt, mit der ana
arbeitet. Beide Dateien sind also zum Testen bereit. Werfen wir einen Blick auf sie:
ls -l ana Words.db
Das Dienstprogramm ana
, das er gerade geschrieben hat, erstellt Anagramme aus einem Satz, der auf der Befehlszeile bereitgestellt wird. Der Verifizierungstest ist ziemlich einfach.
Unser Programmierer hat ana
mit dem Ausdruck „biscuit“ aufgerufen und alles scheint in Ordnung zu sein. Diese beiden Dateien möchte er nun in das Verzeichnis ~/test/ana
kopieren, um zu sehen, ob das neue Dienstprogramm außerhalb der Entwicklungsumgebung richtig funktioniert. Er gibt folgenden Befehl aus:
installiere -D -v ana Words.db -t ~/test/ana
Die in der Befehlszeile verwendeten Optionen waren:
- D : Erstellen Sie Verzeichnisse, einschließlich übergeordneter Verzeichnisse, falls erforderlich.
- v : Ausführlich, listet jedes Verzeichnis auf, während es erstellt wird, und jede Dateikopie, während es ausgeführt wird.
- t : Zielverzeichnis.
Wir können sehen, dass install
das Verzeichnis ~/test
und dann das Verzeichnis ~/test/ana
erstellt. Die Dateien werden einzeln aufgelistet, während sie in das Zielverzeichnis kopiert werden.
Das Auflisten der Dateien in ~/test/ana
bestätigt, dass sie korrekt kopiert wurden.
ls-l
Der nächste Schritt besteht darin, das Dienstprogramm ana
zu testen, indem Sie es im Verzeichnis ~/test/ana
aufrufen.
Das Dienstprogramm funktioniert wie erwartet, was großartig ist. Allerdings stimmen die Berechtigungen nicht. Die Anforderung besteht darin, Mitgliedern der Gruppe geek
Lese- und Ausführungsberechtigungen zuzuweisen und anderen Benutzern nur Ausführungsberechtigungen zu gewähren.
Wir können diese beiden Probleme ganz einfach mit dem folgenden Befehl angehen. Beachten Sie die Verwendung von sudo
zum Ausführen des Befehls mit Root-Berechtigungen. Die Optionen -o
und -g
und 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
- Die Option
-b
(Backup) erstellt Backups der Dateien, bevor sie überschrieben werden. - Die Option
-S
(Suffix) definiert das Suffix für die Sicherungsdateien. Wenn Sie kein Suffix angeben, wird eine~
(Tilde) verwendet. Wir bitten dieinstall
, das Suffix.bak
zu verwenden. - Wir setzen den Eigentümer der Datei mit der Option
-o
(Eigentümer) aufdave
. - Die Option
-g
(Gruppe) erfordert den Namen einer Gruppe. Dies wird zur Eigentümergruppe der Dateien. Die Gruppe, die wir verwenden werden, heißtgeek
. - Die Option
-m
(Modus) legt die Dateimodi für die Dateien unter Verwendung der standardmäßigen numerischenchmod
-Syntax fest.
Wir müssen die Option -D
(Verzeichnisse erstellen) nicht mehr verwenden, da wir wissen, dass das Testverzeichnis bereits existiert. Wir haben auch die Option -v
(ausführlich) weggelassen. Das Auflisten der Dateien in unserem Verzeichnis ~/test/ana
zeigt uns die Dateidetails:
ls-l
Dies bestätigt, dass alle unsere Anforderungen erfüllt wurden.
- Die Dateien wurden in das Testverzeichnis kopiert.
- Die Berechtigungen wurden korrekt gesetzt.
-
dave
ist der Eigentümer der Dateien. - Die
geek
-Gruppe ist die Eigentümergruppe der beiden Dateien. - Von jeder Datei mit den Namen ana.bak und Words.db.bak wurden Sicherungskopien erstellt.
All dies wurde durch die Verwendung eines einzigen Befehls erreicht. Sauber.
Unser Programmierer nimmt einige letzte Änderungen am Dienstprogramm vor und kompiliert es neu. Die geänderten Dateien müssen aus dem Verzeichnis ~/work
in das Verzeichnis ~/test/ana
kopiert werden. Wir können dies tun, indem wir die Option -C
(Vergleichen) verwenden. 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
Das Auflisten der Dateien im Zielverzeichnis zeigt uns, dass sich die Dateigröße der ana
-Datei geändert hat. Sie ist größer als die ana.bak
-Datei. Der Zeitstempel auf ana
hat sich ebenfalls geändert. Diese Änderungen sind darauf zurückzuführen, dass die neue Version der Datei hierher kopiert wurde.
ls-l
Die Dateigröße und der Zeitstempel der Words.db
-Datei haben sich nicht geändert. An der Words.db
-Datei wurden keine Änderungen vorgenommen, sodass sie nicht kopiert wurde. Bei einem Projekt mit vielen Dateien kann die Option -C
(Vergleichen) viel Zeit und Festplattenwechsel sparen, indem nur die Dateien kopiert werden, die geändert wurden.
Der Programmierer hat erneut getestet, ob das Dienstprogramm ana
weiterhin funktioniert.
Es ist an der Zeit, install
zu verwenden, um die Dateien in das Verzeichnis /usr/local/bin
zu kopieren. Dadurch wird das neue Dienstprogramm für alle Benutzer dieses Linux-Computers verfügbar. Wir wissen, dass /usr/local/bin
existiert, also müssen wir dieses Verzeichnis nicht erstellen. Wir können eine modifizierte Version unseres letzten Befehls verwenden.
Wir haben das Zielverzeichnis in /usr/local/bin
geändert. Wir haben die Option -C
(Vergleichen) entfernt, weil es noch keine Kopien dieser Dateien im Zielverzeichnis gibt, es also nichts zu vergleichen gibt. Ebenso gibt es nichts zu sichern, also können wir die Option -b
(Sicherung) und die Option -S
(Suffix) entfernen.
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
Wir können auflisten, dass die Dateien in /usr/local/bin
angekommen sind:
ls-l
Und als letzten Test wechseln wir das Verzeichnis in unser Home-Verzeichnis und sehen, ob wir unser neues Dienstprogramm von dort aus aufrufen können.
Beachten Sie, dass wir dem Befehl ana
kein ./
mussten, was bedeutet, dass er von /usr/local/bin
ausgeführt wird. Mission erfüllt.
Wir haben erwähnt, dass install redundante Symboltabellen und anderes Gepäck aus der Binärdatei entfernen kann, um sie zu verkleinern. Lass uns das jetzt tun. 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. Um die Binärdatei zu ana
und zu verkleinern, können wir den folgenden Befehl verwenden. Wir haben die Option -s (shrink) mit einem kleinen „s“ hinzugefügt. Wir haben die Option -b (Backup) und die Option -S (Suffix) mit einem großen „S“ wieder hinzugefügt.
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin
Das Auflisten der Dateien in /usr/local/bin
ermöglicht es uns, die Größe der ana
-Datei mit ihrer Sicherungsversion zu vergleichen. Die ana
-Datei wurde auf fast 60 % ihrer vorherigen Größe reduziert.
ls -l /usr/local/bin
In Summe
Der install
-Befehl ist für eine hübsche Nischennutzung geeignet. Für viele Menschen wird es nicht Tag für Tag oder möglicherweise von Monat zu Monat verwendet. Trotzdem ist der Befehl install
ein gutes Werkzeug, mit dem man vertraut sein und das man in seinem Trickarsenal haben sollte. Wenn Sie es brauchen, belohnt es Ihre Lernkurve mit Effizienzsteigerungen, Einfachheit und einfach weniger Tastenanschlägen.
Linux-Befehle | ||
Dateien | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm | |
Prozesse | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Vernetzung | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten