Answers:
install
不仅可以复制文件,还可以更改其所有权和权限,还可以选择从可执行文件中删除调试符号。它结合了cp
有chown
,chmod
和strip
。这是一个方便的高级工具,可以完成常见的基本任务序列。
install
over cp
安装可执行文件的一个优点是,如果目标已经存在,它将删除目标文件并创建一个新文件。这消除了任何当前属性,例如访问控制列表和功能,这些属性既可以看作是好的,也可以看作是不利的。更新可执行文件时,如果此可执行文件正在运行,它们将保持运行状态。相反,cp
如果存在,则在适当位置更新文件。在大多数Unix变体中,如果目标是正在运行的可执行文件,则失败并显示错误EBUSY¹;在某些情况下,这可能会导致目标崩溃,因为它会动态加载代码段,而修改文件会导致不必要的代码加载。
install
是BSD命令(在4.2BSD中添加,即在1980年代初期)。POSIX尚未采用它。
¹ “文本文件忙”。在此上下文中,出于晦涩的历史原因,“文本文件”是指“二进制可执行文件” 。
它提供了一种在单个命令中复制文件或创建目录时操纵文件或目录的所有权和权限的标准化方法。
使用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
一个人就会出错。