sli*_*cki 21 linux bash sh cp installation
install -c和 和有cp什么区别?大多数安装都倾向于使用install -c,但从man页面上看,它听起来并没有什么不同cp(除了可能还设置权限的能力)。我应该什么时候使用install -c,什么时候使用cp?
nos*_*nos 20
一个显着的区别是 cp 截断目标文件并开始将数据从源复制到目标文件。
另一方面,安装首先删除目标文件。
这很重要,因为如果目标文件已经在使用中,那么使用该文件的任何人都可能会发生不好的事情,以防万一你cp在它上面有一个新文件。例如,覆盖正在运行的可执行文件可能会失败。截断现有进程正忙于读/写的数据文件可能会导致非常奇怪的行为。如果您只是先删除目标文件,就像安装一样,事情会像往常一样继续 - 在所有进程关闭该文件之前,实际上不会删除被删除的文件。
从技术上讲,之间的区别install -c,并cp是install将目标文件的权限rwxr-xr-x。 cp保留源文件的权限减去 umask。这些默认行为在不同情况下很有用。显然,随着现在cp和install提供的所有选项,功能已经融合。
如今,install通常用于makefile,cp其他地方。这种区别有时很有用,因为某些操作系统或安装系统允许您挂接到install程序以注册已安装的包。现代包管理系统使这种方式过时了,但有些人仍在使用它。此外,在同一个 go 中设置目标文件权限的可能性非常方便。
install从本质上讲,该实用程序是一种奇特的cp。但作为专门安装的工具,它包含一些cp不安装的功能。我的/usr/bin/installGNU coreutils 不仅可以复制,还可以将权限/所有权更改为 arg 标志(保存chgrp、调用)、删除调试信息chown(chmod保存调用)的选项strip以及 SELinux 上下文的一些魔力。
它只是提供对软件安装有用的便捷操作。没有一个会改变生活,所有这些都是有用的,并且可以让你的脚本更干净。
| 归档时间: |
|
| 查看次数: |
6574 次 |
| 最近记录: |