添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

基本上,在编译用的Makefile里会用到install,其他地方会用cp命令。

它们完成同样的任务——拷贝文件,它们之间的区别主要如下:

1、如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。这是因为往正在使用的文件中写入内容可能会导致一些问题,比如说写入正在执行的文件可能会失败,比如说往已经在持续写入的文件句柄中写入新文件会产生错误的文件,而使用install先删除后写入(会生成新的文件句柄)的方式去安装就能避免这些问题了

2、install命令会恰当地处理文件权限的问题。比如说,install -c 会把目标文件的权限设置为rwxr-xr-x

3、install命令可以打印出更多更合适的debug信息,还会自动处理SElinux上下文的问题。


一个running 的进程不能随便进行 cp , 经常会提示  "resource busy",建议是采用install 命令。

install 命令在copy 文件列表的同时,能够设置文件的属性(包括 owner, group) , 通常用在 Makefiles 中 用来copy 程序到指定的目录。