Viděl jsem install příkaz používaný v mnoha Makefiles a jeho existence a použití jsou poněkud matoucí. Z manuálových stránek to vypadá jako vyřazení cp s méně funkcemi, ale předpokládám, že by se nepoužil, pokud by neměl nějakou výhodu oproti cp . Jaká je dohoda?
Přijatá odpověď:
install nejen kopíruje soubory, ale také mění své vlastnictví a oprávnění a volitelně odstraňuje ladicí symboly ze spustitelných souborů. Kombinuje cp s chown , chmod a strip . Je to pohodlný nástroj vyšší úrovně, který provádí běžnou sekvenci základních úkolů.
Výhoda install přes cp pro instalaci spustitelných souborů je to, že pokud cíl již existuje, odstraní cílový soubor a vytvoří nový. Tím se zbavíte všech aktuálních vlastností, jako jsou seznamy řízení přístupu a schopnosti, což lze považovat za výhodu i nevýhodu. Při aktualizaci spustitelných souborů, pokud existují spuštěné instance tohoto spustitelného souboru, zůstanou spuštěny bez ovlivnění. Naproti tomu cp aktualizuje soubor na místě, pokud existuje. Na většině unixových variant to selže s chybou EBUSY¹, pokud je cílem běžící spustitelný soubor; u některých může způsobit zhroucení cíle, protože dynamicky načítá části kódu a úprava souboru způsobí načtení nesmyslného kódu.
install je příkaz BSD (přidán v 4.2BSD, tj. na začátku 80. let). Nebylo přijato POSIX.
¹ „Textový soubor je zaneprázdněn“. V tomto kontextu „textový soubor“ znamená „binární spustitelný soubor“ z nejasných historických důvodů.