GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie unterscheidet sich install -c von cp

Ein wesentlicher Unterschied besteht darin, dass cp die Zieldatei abschneidet und mit dem Kopieren von Daten von der Quelle in die Zieldatei beginnt.

install hingegen entfernt zuerst die Zieldatei.

Dies ist wichtig, denn wenn die Zieldatei bereits verwendet wird, können schlimme Dinge demjenigen passieren, der diese Datei verwendet, falls Sie cp eine neue Datei darüber. z.B. Das Überschreiben einer laufenden ausführbaren Datei schlägt möglicherweise fehl. Das Abschneiden einer Datendatei, in die ein vorhandener Prozess gerade liest/schreibt, kann zu einem ziemlich seltsamen Verhalten führen. Wenn Sie einfach zuerst die Zieldatei entfernen, wie es bei der Installation der Fall ist, gehen die Dinge ganz normal weiter - die entfernte Datei wird nicht wirklich entfernt, bis alle Prozesse diese Datei schließen.


Technisch gesehen ist der Unterschied zwischen install -c und cp ist das install setzt die Berechtigungen der Zieldatei auf rwxr-xr-x . cp behält die Berechtigungen der Quelldatei abzüglich der umask bei. Diese Standardverhalten sind in verschiedenen Situationen nützlich. Natürlich mit allen Optionen, die beide cp und install bieten, sind die Funktionalitäten konvergiert.

Heute install wird häufig in Makefiles verwendet, cp überall sonst. Diese Unterscheidung ist gelegentlich sinnvoll, da einige Betriebssysteme oder Installationssysteme es Ihnen erlauben, sich in die install einzuklinken Programm zum Registrieren der installierten Pakete. Moderne Paketverwaltungssysteme machen diese Art obsolet, aber einige Leute verwenden sie immer noch. Sehr praktisch ist auch die Möglichkeit, die Zieldatei-Berechtigungen im selben Arbeitsgang zu setzen.


Die install Utility ist an seiner Basis ein schickes cp . Aber als spezielles Tool zum Installieren enthält es einige Funktionen, die cp nicht. Mein /usr/bin/install von GNU Coreutils kopiert nicht nur, sondern kann auch Perms/Ownership als Argument-Flags ändern (Speichern von chgrp , chown , chmod Aufrufe) eine Option zum Entfernen von Debug-Informationen (Speichern eines strip Aufruf) und auch etwas Mojo für SELinux-Kontexte.

Es bietet nur praktische Aktionen, die für Softwareinstallationen nützlich sind. Keine ändert das Leben, alle sind nützlich und machen Ihre Skripte sauberer.


Linux
  1. So installieren Sie Fail2Ban unter CentOS 7

  2. Wie kann ich eine Datei von Awk kategorisieren?

  3. Awk aus verschiedenen Linien?

  4. Wie liest man eine Variable aus einer Datei?

  5. Wie installiere ich Ubuntu aus einer Iso-Datei?

So installieren Sie Skype in Fedora 24

So installieren Sie CouchPotato auf Ubuntu

So installieren Sie Software von der Quelle in Linux

So installieren Sie VirtualBox in verschiedenen Linux-Distributionen

So entfernen Sie (^M) Zeichen aus einer Datei in Linux

So installieren Sie Monitorix unter Ubuntu 16.04