linux install(/ usr / bin / install)命令中-c的实际用途是什么?

时间:2019-01-16 11:28:26

标签: install

在Linux install命令中-c的实际用途是什么?手册页显示:

-c     (ignored)

在安装Nagios命令模式时遇到了这种情况:

/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw

2 个答案:

答案 0 :(得分:0)

install手册页中:

-c      Copy the file.  This is actually the default.  The -c option is only included for backwards compatibility.

我认为它在复制文件和创建目录方面表现出相同的行为。另外,看看https://github.com/NagiosEnterprises/nagioscore/blob/master/Makefile.in#L37-L39https://github.com/NagiosEnterprises/nagioscore/blob/master/Makefile.in#L415-L421,我们可以看到它们是由./configure脚本设置的。

看一下configure.ac,我们发现默认的autoconf宏决定了要使用的二进制文件:https://github.com/NagiosEnterprises/nagioscore/blob/master/configure.ac#L17-L19。 Nagios专门用于设置$(COMMAND_OPTS)https://github.com/NagiosEnterprises/nagioscore/blob/master/configure.ac#L237-L240

希望这会有所帮助!

TL; DR:这是遗物,没关系:)

答案 1 :(得分:0)

从历史上看,除非使用install选项指定,否则BSD的-c不会复制文件。 GNU Coreutils的install版本默认情况下会复制文件,并提供-c作为BSD兼容选项,而该选项将被忽略。 GNU Coreutils manpage只是说

-c(忽略)

,并且不提供上下文。这是大多数Linux系统上存在的coreutils版本。

FreeBSD's manpage更具描述性:

-c复制文件。这实际上是默认设置。仅包含-c选项是为了向后兼容。

如今,除非您想与非常老的系统兼容,否则没有特别的理由使用-c选项。话虽这么说,但也没有什么特别的缺点,因为您不太可能达到命令行的字符数限制,因此有点“随您自己”。