install 与 cp 有何不同?

install 与 cp 有何不同?

怎么install与简单的复制不同,cp或者dd?我刚刚编译了一个小实用程序,并想将其添加到其中,/usr/sbin以便可以通过我的PATH变量使用它。为什么要使用其中一种而不是另一种?

答案1

要“安装”从源代码编译的二进制文件,最佳实践是将其放在以下目录下:

/usr/local/bin

在某些系统上,该路径已经在您的 PATH 变量中,如果没有,您可以通过调整配置文件之一中的 PATH 变量来添加它~/.bashrc ~/.profile

PATH=${PATH}:/usr/local/bin

dd是一种低级复制工具,主要用于复制源的精确大小的块,例如文件或设备。

cp是使用选项递归复制文件和目录的常用命令-r,并使用选项保留权限-p

install与 大部分类似,cp但另外提供了直接设置目标文件属性的选项,而无需chmod单独使用。

cp您的文件并根据需要/usr/local/bin调整变量。PATH这就是我会做的。

答案2

install和之间的主要区别cp在于,如果目标文件已经存在,install则首先取消链接。

手册页中没有指出这种差异。其他答案中列出的内容也很重要——两个程序都有不同的选项,而且 GNU 也install有与 BSD 不同的选项install,因此可移植的 Makefile 仅限于一个公共子集。

为什么取消链接(也可以通过rmbefore完成cp)很重要?如果您有一个带有两个硬链接的文件并使用其中一个硬链接修改它,那么它也会在文件系统的其他位置进行修改。但是,如果您先删除其中一个硬链接并用修改后的文件替换它,则另一个地方将保留原始版本。

更可能的情况是您在使用程序或库时更新它。如果先取消链接二进制文件,则不会影响正在运行的程序。这是一篇很好的文章,其中包含更多详细信息: http://en.chys.info/2009/05/install-vs-cp-and-mmap/

答案3

使用默认模式 755 安装副本文件。

可以配置安装来设置文件的所有者或组和/或文件的模式。

安装可以配置为在替换原始文件之前对其进行备份。

相关内容