用法:install [选项]... [-T] 源文件 目标文件
 或:install [选项]... 源文件... 目录
 或:install [选项]... -t 目录 源文件...
 或:install [选项]... -d 目录...

此install 将文件(通常仅是编译后的文件)复制到您所选择的目的位置。
如果您希望在GNU/Linux 操作系统上下载并安装一个即时可用的软件包,
您应当使用诸如yum(1) 和apt-get(1) 的软件包管理器。

在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录
中同时设置其所有权和权限模式。在第四种形式中,创建给出目标目录中的所有组件。

长选项必须使用的参数对于短选项时也是必需使用的。
      --backup[=CONTROL]        为每个已存在的文件创建备份
  -b                    类似--backup 但不接受参数
  -c                    (忽略)
  -C, --compare         比较每组源文件和目标文件,在一些情况下不修改目标文件
  -d, --directory       将所有参数视为目录名称;为指定的目录创建所有组件
  -D                    创建目标目录的所有必要的父目录,然后将源文件复制至该目录
  -g, --group=组        自行设置所属组,而不是进程目前的所属组
  -m, --mode=模式       自行设置权限模式(像chmod),而不是rwxr-xr-x
  -o, --owner=所有者    自行设置所有者(只适用于超级用户)
  -p, --preserve-timestamps     修改源文件的访问/修改时间以与目标文件保持一致
  -s, --strip                   拆解符号表
      --strip-program=程序      指定拆解二进制文件的程序
  -S, --suffix=后缀             覆盖常用备份文件后缀
  -t, --target-directory=目录   将源文件所有参数复制到指定目录
  -T, --no-target-directory     将目标文件视为普通文件
  -v, --verbose                 创建目录时显示其名称
      --preserve-context        保持SELinux 的安全环境
  -Z, --context=CONTEXT         设置文件和目录的SELinux 安全环境
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

例:


复制代码代码如下:
[root@linux ~]# install test.php ar_test #将test.php拷贝到ar_test下面
[root@linux ~]# install -d hao #创建目录
[root@linux ~]# install -t hao utf8 test.php #将utf8 test.php cp到hao目录下面


linux中install命令和cp命令的区别
基本上,在Makefile里会用到install,其他地方会用cp命令。

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

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

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

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

复制代码代码如下:
install - copy files and set attributes

install 在做拷贝的同时,设置attributes.

因此Makefile 中尽量使用install 命令。

例如

复制代码代码如下:
@install -d <a>/usr/bin</a> -p -D -m 0755 targets /usr/bin

 
相当于


复制代码代码如下:
@mkdir -p /usr/bin targets /usr/bin 755 /usr/bin/targets /usr/bin/tagets


更新文件时间戳

 
install 命令好强大啊。

另外@前缀的意思是不在控制台输出结果。

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?