在Linux众多命令中,install命令和cp命令都能拷贝文件,但在用法上有些区别,不少人在使用的时候不知如何选择,下面小编就教你如何区分install命令和cp命令。一起去看看吧!
它们之间的区别主要如下:
1、最重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。这是因为往正在使用的文件中写入内容可能会导致一些问题,比如说写入正在执行的文件可能会失败,比如说往已经在持续写入的文件句柄中写入新文件会产生错误的文件。而使用install先删除后写入(会生成新的文件句柄)的方式去安装就能避免这些问题了;
2、install命令会恰当地处理文件权限的问题。比如说,install -c会把目标文件的权限设置为rwxr-xr-x;
3、install命令可以打印出更多更合适的debug信息,还会自动处理SElinux上下文的问题。
------------------------------------分割线------------------------------------
当时在编译LFS 6 的时候, 一直搞不懂 install 的命令 和 cp 以及和 chmod, chgrp 的区别?
工作之后才明白一个Running 的进程不能随便进行 cp , 经常会提示 ;text busy", 运维部的前辈们给的建议是采用mv 来替代 cp , 今天看起来前辈好像不知道install 这个命令啊。
现在就简单介绍一下 install 命令。
install copy 文件列表且同时能够设置文件的属性(包括 owner, group) , 通常用在 Makefiles 中 用来copy 程序到指定的目录。
常见的用法有以下3中形式:
1: install -d [option] DIRECTORY [DIRECTORY.。。] 支持多个。 类似 mkdir -p 支持递归。
例如: install -d a/b/c e/f 结果和 mkdir -p a/b/c e/f 一样。
2: install [option] SOURCE DEST
复制 SOURCE 文件(测试不能是目录) 到DEST file(文件) 。
install a/e c 结果类似 cp a/e c # 注意c必须是文件。
有用选项 -D
install -D x a/b/c # 效果类似 mkdir -p a/b && cp x a/b/c
3: install [option] SOURCE [SOURCE.。。] DIRECTORY
复制 多个SOURCE 文件到目的目录。
install a/* d 其中 d 是目录。
有用选项
-b :自动备份。
-m : 设置安装文件的权限
-p :保留文件的timestamps. 也就是说文件的timestaamps 和 source 文件一样。 当我们想要利用安装文件的mtime来跟踪文件的build时间而不是 安装时间。
-s : Strip the symbol tables from installed binary executables.
-S : 备份文件的后缀。
install -S .bak new old #old 文件自动被 mv 为 old.bak.
-v: verbose ,打印install 的文件的详细信息。
`-c‘
Ignored; for compatibility with old Unix versions of `install’。 #用来兼容旧版的unix.
-C: (大写)
安装文件, 但是如果目标文件和源文件一样( 判断方法需要看看代码确认) 就跳过, 这样的好处是 能够保持一样文件的mtime.
上面就是Linux install命令和cp命令的用法介绍了,其中最大的区别就是在复制目标文件存在的时候,install可以先删除再使用,以免拷贝失败。希望此文档可以帮助到大家!
WindowsSubsystem for Linux(WSL)2对Windows10版本1903和1909的支持 根据客户......
阅读微软已经向开发通道中的Windows Insiders宣布了Windows 10 Insider Prev......
阅读bull; Wine最近收到了对6.0版的更新。 bull; 此更新改进了使用Wine的......
阅读有趣的是,微软正在努力使Linux在Windows10下运行。我们都熟悉W......
阅读适用于 Linux 的 Windows 子系统既是一种启示,也是一场革命。现在......
阅读适用于 Linux 5.16 的新 Zstd 已准备就绪,性能提升高达 35% 最近,为 Linux 5.16 内核准备的新 Zstd 已提交给linux-next 合并,以便在接下来的几周内进行更广泛的测试。...
次阅读
最近一些朋友问小编在Linux下如何确定网卡所使用驱动程序?今天小编要为大家带来的是在Linux下确定网卡所使用驱动程序的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
今天小编为大家带来的是 linux命令行下进入带空格的文件夹的方法。希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
Linux Mint 是较流行的 Linux发行版之一,它发布了 20.2 版,绰号为Uma。它带有新功能、升级的内部结构和其他更改。今天,我们将仔细研究新功能。 Mint 20....
次阅读
最近一些朋友问小编Linux如何修改RPM的安装目录?今天小编为大家带来的是Linux修改RPM的安装目录的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
最近有些朋友问小编Linux系统下挂接ntfs盘时总提示module fuse not found如何解决?今天小编将为大家带来的是Linux系统下挂接ntfs盘时总提示module fuse not found的解决方法,有需要的朋友一起去看...
次阅读
今天小编要为大家分享的是Linux下安装vagrant过程遇到的问题解析,希望可以帮助到大家,有需要的朋友一起去看看吧...
次阅读
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。今天小编要为大家分享的是SELinux基本概念详解,希望对大家会有帮助,有...
次阅读
今天小编为大家带来的是Linux basename命令的使用详解,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
bull; Wine最近收到了对6.0版的更新。 bull; 此更新改进了使用Wine的Linux系统上的Windows应用程序。 bull; Wine可用于在非本机系统上运行Windows应用程序和...
次阅读
最近一些朋友问小编Linux怎么去除fstab文件只读属性?今天小编为大家分享的是Linux去除fstab文件只读属性的方法,有需要的朋友可以参考下...
次阅读
今天小编为大家带来的是从Vim中访问shell或者运行外部命令的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读
这篇文章主要介绍了Linux批量清空当前目录中的日志文件,需要的朋友可以参考下...
次阅读
在实际使用过程中,若一个目录下文件或文件夹太多,在执行“*” 命令时 会提示Argument list too long,如rm -rf /tmp/*命令下...
次阅读
今天小编为大家带来的是Linux下设置权限让用户只删除自己的文件的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...
次阅读