aze*_*nik 54 command-line make cp
我见过install
很多 Makefile 中使用的命令,它的存在和用法有点令人困惑。从联机帮助页来看,它似乎是一个cp
功能较少的仿制品,但我认为除非它比cp
. 这是怎么回事?
Gil*_*il' 55
install
不仅会复制文件,还会更改其所有权和权限,并可选择从可执行文件中删除调试符号。它结合了cp
有chown
,chmod
和strip
。它是一种方便的高级工具,可以完成基本任务的常见序列。
install
overcp
安装可执行文件的一个优点是,如果目标已经存在,它会删除目标文件并创建一个新文件。这消除了任何当前属性,例如访问控制列表和功能,这既可以被视为有利也可以视为不利。更新可执行文件时,如果有此可执行文件的运行实例,它们将继续运行,不受影响。相反,cp
如果有文件,则就地更新文件。在大多数 Unix 变体上,如果目标是一个正在运行的可执行文件,这将失败并显示错误 EBUSY¹;在某些情况下,它会导致目标崩溃,因为它会动态加载代码部分,而修改文件会导致加载无意义的代码。
install
是一个 BSD 命令(在4.2BSD 中添加,即在 1980 年代早期)。它尚未被 POSIX 采用。
¹ “文本文件忙”。在这种情况下,“文本文件”的意思是“二进制可执行文件”,因为历史原因不明。
Ign*_*ams 10
它提供了在复制文件或创建目录时在单个命令中操作文件或目录的所有权和权限的标准化方法。