Câu trả lời:
install
không chỉ sao chép các tập tin mà còn thay đổi quyền sở hữu và quyền của nó và tùy ý xóa các biểu tượng gỡ lỗi khỏi các tệp thực thi. Nó kết hợp cp
với chown
, chmod
và strip
. Đây là một công cụ cấp cao thuận tiện để thực hiện một chuỗi các nhiệm vụ cơ bản chung.
Một lợi thế của install
hơn cp
cho việc cài đặt thực thi là nếu mục tiêu đã tồn tại, nó loại bỏ các tập tin mục tiêu và tạo ra một cái mới. Điều này được loại bỏ bất kỳ thuộc tính hiện tại nào như danh sách và khả năng kiểm soát truy cập, có thể được xem là cả mặt trái và mặt trái. Khi cập nhật các tệp thực thi, nếu có các phiên bản đang chạy của tệp thực thi này, chúng sẽ tiếp tục chạy không bị ảnh hưởng. Ngược lại, cp
cập nhật tệp tại chỗ nếu có. Trên hầu hết các biến thể Unix, điều này không thành công với lỗi EBUSY¹ nếu mục tiêu là một tệp thực thi đang chạy; trên một số nó có thể khiến mục tiêu bị sập vì nó tải các phần mã một cách linh hoạt và sửa đổi tệp khiến cho mã vô nghĩa được tải.
install
là một lệnh BSD (được thêm vào 4.2BSD , tức là vào đầu những năm 1980). Nó đã không được POSIX chấp nhận.
¹ Tập tin văn bản bận rộn. Trong bối cảnh này, tập tin văn bản của người Viking có nghĩa là tập tin thực thi nhị phân của tập tin, vì lý do lịch sử tối nghĩa .
Nó cung cấp một cách chuẩn hóa để thao túng quyền sở hữu và quyền của tệp hoặc thư mục trong khi sao chép tệp hoặc tạo thư mục, trong một lệnh duy nhất.
install
thực hiện một bản sao theo sau là chown và chmod, tất cả các tòa nhà riêng biệt và không sử dụng đổi tên thành địa điểm (ít nhất là trong coreutils 8.13 phiên bản GNU không). Nếu bạn cho rằng tất cả xảy ra nguyên tử, bạn có thể nhận được một bất ngờ khó chịu.
Với install
lệnh chúng ta có thể Sao chép tệp với quyền mong muốn
Ví dụ chủ yếu sử dụng trong khi thiết lập ldap
install -o ldap -g ldap /etc/openldap/DB_CONFIG_EXAMPLE /var/lib/ldap/DB_CONFIG
Điều này giúp chúng tôi tiết kiệm chown ldap. /var/lib/ldap/DB_CONFIG
, nếu bạn đã sao chép bằng cách sử dụng cp
thì bạn cũng cần phải chown
trong kịch bản này
Xem trang người đàn ông cho install
:
$ man install
đoạn trích
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.
Những thứ hữu ích khác như cài đặt với quyền sở hữu cụ thể, quyền và bảo quản dấu thời gian của tệp gốc cũng có thể đạt được thông qua việc sử dụng 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
, thay vì chỉ bảo toàn các quyền hiện có như vớicp
rm
cùng vớicp
. Điều này có nghĩa là nó có thể ghi đè lên các tệp đang được sử dụng bằng cách hủy liên kết chúng (rm
) trước.cp
một mình sẽ cho một lỗi.