Відповіді:
install
не тільки копіює файли, але також змінює їх право власності та дозволи та, можливо, видаляє налагоджувальні символи з виконуваних файлів. Він поєднується cp
з chown
, chmod
та strip
. Це зручний інструмент вищого рівня для виконання загальної послідовності елементарних завдань.
Перевагою install
над cp
встановленням виконуваних файлів є те, що якщо мета вже існує, вона видаляє цільовий файл і створює новий. Це позбавляється від будь-яких поточних властивостей, таких як списки та можливості контролю доступу, які можна розглядати і як перевершення, і як зворотний бік. Під час оновлення виконуваних файлів, якщо є запущені екземпляри цього виконуваного файлу, вони не змінюються. На відміну від цього, cp
оновлює файл на місці, якщо такий є. У більшості варіантів Unix це не вдається з помилкою EBUSY¹, якщо мета - запущений виконуваний файл; на деяких це може призвести до краху цілі, оскільки вона динамічно завантажує розділи коду, а зміна файлу призводить до завантаження безглуздого коду.
install
- команда BSD (додана в 4.2BSD , тобто на початку 1980-х). Вона не була прийнята POSIX.
¹ "Текстовий файл зайнятий". У цьому контексті "текстовий файл" означає "двійковий виконуваний файл" з незрозумілих історичних причин .
Він забезпечує стандартизований спосіб маніпулювання правом власності на файл чи каталог, а також копіювання файлу або створення каталогу в одній команді.
install
робить копію, за якою слідують chown та chmod, усі окремі систематичні виклики, і не використовує перейменування на місце (принаймні, як для coreutils 8.13, версія GNU не має). Якщо ви припускаєте, що все відбувається атомно, ви можете отримати неприємний сюрприз.
За допомогою install
команди ми можемо скопіювати файл із дозволом на бажання
Приклад, який в основному використовується під час налаштування ldap
install -o ldap -g ldap /etc/openldap/DB_CONFIG_EXAMPLE /var/lib/ldap/DB_CONFIG
Це врятує нас chown ldap. /var/lib/ldap/DB_CONFIG
, якщо ви скопіювали за допомогою, cp
то вам також потрібно chown
в цьому сценарії
Перегляньте сторінку чоловіка для install
:
$ man install
витяг
SYNOPSIS
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
DESCRIPTION
This install program copies files (often just compiled) into
destination locations you choose. If you want to download and
install a ready-to-use package on a GNU/Linux system, you should instead
be using a package manager like yum(1) or apt-get(1).
In the first three forms, copy SOURCE to DEST or multiple SOURCE(s) to
the existing DIRECTORY, while setting permission modes and
owner/group. In the 4th form, create all components of the given
DIRECTORY(ies).
Mandatory arguments to long options are mandatory for short options too.
Інші корисні речі, такі як встановлення з певним правом власності, дозволи та збереження часових позначок оригінальних файлів, також можуть бути досягнуті за допомогою використання install
.
-g, --group=GROUP
set group ownership, instead of process' current group
-m, --mode=MODE
set permission mode (as in chmod), instead of rwxr-xr-x
-o, --owner=OWNER
set ownership (super-user only)
-p, --preserve-timestamps
apply access/modification times of SOURCE files to corresponding
destination files
install
, а не просто зберегти існуючі дозволи, як уcp
rm
зcp
. Це означає, що він може перезаписати файли, які використовуються,rm
спочатку від’єднавши їх ( ).cp
поодинці дасть помилку.