如果您运行man rsync
并转到选项摘要,会发现很多长格式(即--long-option
)样式选项,它们要么是短格式选项的别名,要么与短格式选项组合在一起。例如
选项摘要 以下是 rsync 中可用选项的简短摘要。
-v, --verbose increase verbosity
--info=FLAGS fine-grained informational verbosity
--debug=FLAGS fine-grained debug verbosity
--msgs2stderr special output handling for debugging
[...]
-e, --rsh=COMMAND specify the remote shell to use
--rsync-path=PROGRAM specify the rsync to run on remote machine
--existing skip creating new files on receiver
--ignore-existing skip updating files that exist on receiver
--remove-source-files sender removes synchronized files (non-dir)
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before xfer, not during
--delete-during receiver deletes during the transfer
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not during
[...]
由此:
-v, --verbose increase verbosity
我认为这意味着-v
和--verbose
是彼此的别名 - 即他们做完全相同的事情。
但是其他选项怎么样,例如在详细选项的情况下
--info=FLAGS fine-grained informational verbosity
--debug=FLAGS fine-grained debug verbosity
并且在这种情况下-e
--rsh=COMMAND` specify the remote shell to use
--rsync-path=PROGRAM specify the rsync to run on remote machine
--existing skip creating new files on receiver
-v
缩写形式-e
和这些看似“属于”缩写形式的长形式选项之间有什么关系?
它们在功能上相关吗?例如
--existing
只能在以下情况下使用-e
,例如
rsync -e 'ssh ...' --existing
或者这是否意味着--existing
永远不应该与-e
, 一起使用-v
,就像您已经拥有--verbose
.
或者是否没有任何功能关系,即--long-form
与其简短形式的父项“分组”的选项本身就是完全独立的选项,而man rsync
作者只是为了分类而将它们分组在一起?
答案1
同一行的短形式和长形式是等效的。
所以,-e COMMAND
等价于--rsh=COMMAND
,-v
等价于--verbose
。
命令的分组是根据功能的相似性进行的,因此--verbose
、--info
、 和--debug
都与程序运行时的详细程度相关。但在本例中,只有--verbose
一个等效的缩写形式。
答案2
只有长格式选项的行描述了没有短格式的选项,它们与前面几行中描述的任何选项无关。即与/--info
无关。这些选项只是按照有些相似的方式进行分组,但 rsync 的选项太多,它们都可以有一个简短的形式。-v
--verbose