要为目录创建 tar 文件,可以这样键入tar
带有compress
,verbose
和file
选项的命令:
$ tar -cvf my.tar my_directory/
Run Code Online (Sandbox Code Playgroud)
但它也可以这样做:
$ tar cvf my.tar my_directory/
Run Code Online (Sandbox Code Playgroud)
也就是说,选项前没有破折号 (-)。为什么要向选项列表传递一个破折号 (-)?
Cha*_*tin 55
历史上在 UNIX 应用程序中使用的选项有几种不同的模式。几个旧的,比如tar,使用位置方案:
命令选项参数
例如 tar 使用
tar *something*f “操作的文件” *“操作的文件路径”*
在第一次尝试避免混淆时,tar和其他一些具有旧标志参数样式的程序允许用破折号分隔标志,但我们大多数老家伙只是忽略了这一点。
其他一些命令具有更复杂的命令行语法,例如dd(1)使用标志、等号、路径名、参数和梨树中的鹧鸪,所有这些都是疯狂的放弃。
在 BSD 和更高版本的 unix 中,这或多或少会收敛到标有“-”的单字符标志,但这开始出现一些问题:
--output
.然后 Sun 认为额外的“-”是多余的,并开始使用带有单个“-”的长样式标志。
这就是现在的烂摊子。
Pau*_*lin 11
您可以以标准的 unix 方式提供 tar 选项tar -c -f foo -v -B file1 file2 file3
,您需要破折号来区分选项和参数或命令行末尾的文件名。或者您可以将所有选项放在第一个参数中,在这种情况下,破折号是可选的。
然后是ps
,如果您使用的是 SysV-ish 选项,则使用破折号,如果您使用 BSD-ish 选项,则将它们排除在外,只是为了使事情更加混乱。
让我们甚至不谈find
。