「install(1)」-

  LINUX MANUAL PAGES

复制文件并设置属性

命令语法格式

install [option]… [-T] source dest
install [option]… source… directory
install [option]… -t directory source…
install [option]… -d directory…

命令描述

命令install复制文件,然后设置文件模式位,如果可能,还会修改文件所属的用户和组。

  • 如果给出了两个文件名,install会将第一个文件复制到第二个文件。
  • 如果给出–target-directory(-t)选项,则install将每个源文件(source…)复制到该选项指定的目录directory中,文件名为原文件名。或者如果最后一个文件是目录,并且没有给出–no-target-directory(-T)选项,则install的会执行失败。
  • 如果给出了–directory(-d)选项,install会创建每个目录以及任何缺少的父目录。无论-m选项或当前的umask是什么,父目录都使用’u=rwx,go=rx’(755)模式创建。有关如何继承父目录的set-user-ID和set-group-ID位的信息,请参见目录Setuid和Setgid

命令instlal类似于cp,但install允许控制目标文件的属性。它通常用于Makefiles中,将程序复制到目标目录中。它拒绝将文件复制到自身。

命令install永远不会保留扩展属性(xattr)。

命令支持的选项及含义

需要提供给长选项的参数也必须提供给相应的短选项。

-b, –backup[=method]
备份每个可能被覆盖或删除的文件。请参阅备份选项

-C, –compare
比较每对源文件source和目标文件dest,并且如果目标文件dest具有相同的内容和任何指定的所有者、组、权限、可能的SELinux上下文,则不要修改目标文件dest。

请注意,此选项最好与–user、–group、–mode选项一起使用,以免install错误地决定了安装文件的默认属性(例如,因为它不考虑setgid目录和POSIX默认ACL)。这可能会导致多余的副本或属性未被重置为正确的默认值。

-D
创建任何缺少dest的父目录,然后再将source复制到dest。显式指定–target-directory=dir将同样确保在复制参数source之前存在该层次结构。

-d, –directory
创建任何缺少dest的父目录,为它们提供默认属性 然后创建每个给定的目录,将它们的所有者、组、模式设置为在命令行中给出或默认设置。

-g group, –group=group
将已安装文件或目录的组设置为group。默认值是进程的当前组。参数group可以是组名或数字组ID。

-m mode, –mode=mode
将已安装文件或目录的文件模式位设置为mode,可以是八进制数字,也可以是chmod中的符号模式,并以’a=’(任何人都不允许访问)为开始(请参阅文件权限)。默认的模式为’u=rwx,go=rx,a-s’(所有者可以进行读取、写入、执行,对组和其他组进行读取和执行,并禁用set-user-ID和set-group-ID)。这个默认值与’755’不一样,因为它禁用而不是保留目录上的set-user-ID和set-group-ID。参见目录Setuid和Setgid

-o owner, –owner=owner
如果install具有适当的权限(以root身份运行),请将安装的文件或目录的所有权设置为owner。默认是root。owner可能是用户名或数字类型的ID。

–preserve-context
保留文件和目录的SELinux安全上下文。未能保留文件或目录中的全部的上下文将会状态1退出。如果SELinux被禁用,则打印警告并忽略该选项。

-p, –preserve-timestamps
将每个安装文件的上次访问时间(atime)和上次修改时间(mtime)设置为与每个相应原始文件相同的时间。当没有使用此选项来安装文件时,其上次访问和上次修改时间戳都设置为安装时的时间。如果你想使用上次安装文件的修改时间戳来跟踪上次构建的时间,而不是上次安装的时间,则此选项非常有用。

-s, –strip
从已安装的二进制可执行文件中剥离符号表。

–strip-program=program
用于剥离二进制文件的程序。

-S suffix, –suffix=suffix
将后缀suffix追加到使用-b生成的备份文件后面。请参阅备份选项

-t directory, –target-directory=directory
指定目标目录directory,可以同时指定-D选项来自动创建不存在的目录directory及父级目录。请参阅目标目录

-T, –no-target-directory
当它是目录或指向目录的符号链接时,不要特殊处理最后一个操作数。请参阅目标目录

-v, –verbose
在复制之前打印每个文件的名称。

-Z, –context[=context]
如果没有指定的上下文context,请根据目标文件的系统默认类型来调整SELinux安全上下文,与restorecon命令类似。可以指定的特定上下文的长选项将仅为新创建的文件设置上下文。在指定的上下文中,如果SELinux和SMACK都被禁用,则会发出警告。

此选项与–preserve-context选项互斥。

–help
显示帮助并退出。

–version
显示版本信息。

-c
该选项已经被忽略;是为了与旧的Unix版本的install兼容。

退出状态

退出状态为零表示成功,非零值表示失败。

相关手册

查看在线手册:https://www.gnu.org/software/coreutils/manual/coreutils.html#install-invocation

查看info手册:info ‘(coreutils) install invocation’

参考文献

  • man 1 install, version GNU coreutils 8.28

更新日志

  • 06/28/2018 创建文章