首页 > 代码库 > Linux命令:install

Linux命令:install

install命令简介:

                  install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。

               install命令     - copy files and set attributes(属性)


1.命令格式:

    install [OPTION]... [-T] SOURCE DEST
      install [OPTION]... SOURCE... DIRECTORY
      install [OPTION]... -t DIRECTORY SOURCE...
      install [OPTION]... -d DIRECTORY...


2.命令功能:

   1.作用
     install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。
   2.格式
    (1) install [选项]... 来源 目的地
    (2) install [选项]... 来源... 目录
    (3) install -d [选项]... 目录...
    在前两种格式中,会将<来源>复制至<目的地>或将多个<来源>文件复制至已存在的<目录>,同时设定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。

   3.主要参数
    --backup[=CONTROL]:为每个已存在的目的地文件进行备份。
    -b:类似 --backup,但不接受任何参数。
    -c:(此选项不作处理)。
    -d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。
    -D:创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>;在第一种使用格式中有用。
    -g,--group=组:自行设定所属组,而不是进程目前的所属组。
    -m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。
    -o,--owner=所有者:自行设定所有者 (只适用于超级用户)。
    -p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性。
    -s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。
    -S,--suffix=后缀:自行指定备份文件的<后缀>。
    -v,--verbose:处理每个文件/目录时印出名称。
    --help:显示此帮助信息并离开。
    --version:显示版本信息并离开。



附:在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  - copy files and set attributes

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

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

    例如

      @install -d /usr/bin

       @install -p -D -m 0755 targets /usr/bin

      相当于

      @mkdir -p /usr/bin

      @cp targets /usr/bin                 <---- 复制文件

      @chmod 755 /usr/bin/targets    <---- 更新文件权限

      @touch /usr/bin/tagets                <---- 更新文件时间戳

      install 命令好强大啊。

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


Linux命令:install