在Linux install命令中-c的实际用途是什么?手册页显示:
-c (ignored)
在安装Nagios命令模式时遇到了这种情况:
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
答案 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-L39和https://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
选项。话虽这么说,但也没有什么特别的缺点,因为您不太可能达到命令行的字符数限制,因此有点“随您自己”。