install
nie tylko kopiuje pliki, ale także zmienia ich własność i uprawnienia oraz opcjonalnie usuwa symbole debugowania z plików wykonywalnych. Łączy się cp
z chown
, chmod
i strip
. Jest to wygodne narzędzie wyższego poziomu, które realizuje wspólną sekwencję podstawowych zadań.
Zaletą install
over cp
instalowania plików wykonywalnych jest to, że jeśli cel już istnieje, to usuwa plik docelowy i tworzy nowy. Pozbywa się to wszelkich bieżących właściwości, takich jak listy kontroli dostępu i możliwości, które można postrzegać zarówno jako plus, jak i minus. Podczas aktualizowania plików wykonywalnych, jeśli są uruchomione instancje tego pliku wykonywalnego, nadal działają bez zmian. Natomiast cp
aktualizuje plik na miejscu, jeśli taki istnieje. W większości wariantów Uniksa błąd kończy się błędem EBUSY¹, jeśli celem jest działający plik wykonywalny; w niektórych przypadkach może powodować awarię celu, ponieważ dynamicznie ładuje sekcje kodu, a modyfikacja pliku powoduje wczytywanie nonsensownego kodu.
install
to polecenie BSD (dodane w 4.2BSD , tj. na początku lat 80.). Nie został przyjęty przez POSIX.
¹ „Plik tekstowy zajęty”. W tym kontekście „plik tekstowy” oznacza „binarny plik wykonywalny” z niejasnych powodów historycznych .
Gilles „SO- przestań być zły”
źródło
rm
zcp
. Oznacza to, że może zastąpić używane pliki,rm
najpierw je rozłączając ( ).cp
sam dałby błąd.Zapewnia znormalizowany sposób manipulowania własnością i uprawnieniami do pliku lub katalogu podczas kopiowania pliku lub tworzenia katalogu za pomocą jednego polecenia.
źródło
install
robi kopię, po której następuje chown i chmod, wszystkie osobne wywołania systemowe i nie używa zmiany nazwy na miejsce (przynajmniej od coreutils 8.13 wersja GNU nie). Jeśli założysz, że wszystko dzieje się atomowo, możesz mieć nieprzyjemną niespodziankę.Za pomocą
install
polecenia możemy skopiować plik z uprawnieniami pożądaniaPrzykład, z którego najczęściej korzysta się podczas konfigurowania ldap
To nas oszczędza
chown ldap. /var/lib/ldap/DB_CONFIG
, jeśli skopiowałeś przy użyciu,cp
musisz równieżchown
w tym scenariuszuźródło
Zobacz stronę podręcznika dla
install
:fragment
Inne przydatne rzeczy, takie jak instalowanie z określoną własnością, uprawnieniami i zachowanie znaczników czasowych oryginalnych plików, można również uzyskać za pomocą
install
.Bibliografia
źródło
install
, zamiast tylko zachować istniejące uprawnienia jak w przypadkucp