install简介
install同样具有复制文件的功能,只是相对于cp有些不同,主要使用方法如下:
install [选项]... [-T] 源文件 目标文件
install [选项]... 源文件... 目录
install [选项]... -t 目录 源文件...
install [选项]... -d 目录...
具体选项如下:
选项 | 功能 |
---|---|
-b | 为每个已存在的文件创建备份,不接受参数 |
-c | (忽略) |
-d | 将所有参数视为目录名称,为指定的目录创建所有组件 |
-D | 创建目标目录的所有必要的父目录,然后将源文件复制至该目录 |
-g | gourp,自行设置所属组,而不是进程目前的所属组 |
-o | owner,自行设置所有者 |
-m | model,自行设置权限模式类似于chmod |
-p | 修改源文件的访问/修改时间以与目标文件保持一致 |
-s | strip,拆解符号表 |
-S | suffix,覆盖常用备份文件后缀 |
-t | target,将源文件所有参数复制到指定目录 |
-T | 将目标文件视为普通文件 |
-v | 创建目录时显示其名称 |
-Z | 设置文件和目录的SELinux 安全环境 |
常用选项:
-o,--owner 设置文件的属主
-g,--group 设置文件的属组
-d,--directory 为指定的目录创建所有组件
-m,--mode=模式 设置文件的权限,默认权限为755
-p 以源文件的创建时间和修改时间作为目标文件的对应时间
具体使用详解:
1、直接进行文件复制:
install /var/log/messages /tmp/messages,将 /var/log/messages文件复制到/tmp/messages目录下;
2、创建目录:
install -d test创建test目录;
3、指定目录复制文件:
install -t test /var/log/messages /etc/passwd将/var/log/ /etc/passwd两个文件复制到test目录下;
4、复制文件并修改文件权限:
install -m 660 /etc/passwd /test/passwdtest,将/etc/passwd文件复制到test目录下并更改名为passwdtest同时设置文件的权限为660;
5、设置文件所属组:
install -o root /test/passwdtest将/test/passwdtest的所属组权限更改为root;
install与cp的区别总结
1、复制文件的过程差别:如果目标文件存在,cp会先清空文件后往里写入新文 件,而install则会先删除掉原先的文件然后写入新文件。这是因为往正在 使用的文件中写入内容可能会导致一些问题,比如说写入正在执行的文件可能会失败,比如说往已经在持续写入的文件句柄中写入新文件会产生错误的文件,而使用 install先删除后写入(会生成新的文件句柄)的方式去安装就能避免这些问题了;
2、install可以处理文件的属性,复制文件过程中指定文件相应的权限;
3、install只能复制文件或者目录本身,cp可以可以复制整个目录的层级结构;
4、install命令可以打印出更多更合适的debug信息,还会自动处理SElinux上下文的问。