tar: jcvfh 和-jcvfh 有什么区别?
tar: What is the difference between jcvfh and -jcvfh?
当删除 -
时,我得到了我想要的(tar,所有文件都按预期包含),当添加 -
时,我得到了一个名为 [=13] 的二进制文件=].
我知道文件 h
是因为它出现在 f 之后而创建的,但我不明白为什么当我删除 -
.
时它没有发生
在本例中,它表示“标准输入”。当需要文件参数并且您需要改用标准输入时,某些软件(例如 tar)会使用它。它不是 shell 构造,它取决于您使用的程序。如有疑问,请查看联机帮助页!
标准输入是 -f 选项的参数。在不使用 - 的情况下,您可以使用 tar xvf /home/me/folder/yup 或 tar xvf /dev/stdin
根据您使用的不同平台,不要指望这在全球范围内意味着“标准输入”。因为它不被 shell 解释,每个程序都可以自由地处理它,因为它认为合适。在某些地方,它是标准输出或完全不同的东西:在 su 上它表示'start a login shell'。其他地方根本不解释
像许多传统的 Unix 命令一样,tar
允许不同的选项语法样式:
- UNIX 选项,可以分组并且前面必须有破折号。
- BSD 选项,可以分组并且不能与破折号一起使用。
- GNU 长选项,前面有两个破折号。
tar 手册页说 "the first argument to tar should be a function; either one of the letters Acdrtux, or one of the long function names."
-f
选项后面必须跟要处理的存档的文件名。
您的选项顺序错误,并且会根据平台和其他情况给出不同的意外结果。 c
应该是第一个选项,f
必须在文件名之前。
tar -cjvhf name.tar.gz <path or file>
和
一样
tar cjvhf name.tar.gz <path or file>
当删除 -
时,我得到了我想要的(tar,所有文件都按预期包含),当添加 -
时,我得到了一个名为 [=13] 的二进制文件=].
我知道文件 h
是因为它出现在 f 之后而创建的,但我不明白为什么当我删除 -
.
在本例中,它表示“标准输入”。当需要文件参数并且您需要改用标准输入时,某些软件(例如 tar)会使用它。它不是 shell 构造,它取决于您使用的程序。如有疑问,请查看联机帮助页! 标准输入是 -f 选项的参数。在不使用 - 的情况下,您可以使用 tar xvf /home/me/folder/yup 或 tar xvf /dev/stdin
根据您使用的不同平台,不要指望这在全球范围内意味着“标准输入”。因为它不被 shell 解释,每个程序都可以自由地处理它,因为它认为合适。在某些地方,它是标准输出或完全不同的东西:在 su 上它表示'start a login shell'。其他地方根本不解释
像许多传统的 Unix 命令一样,tar
允许不同的选项语法样式:
- UNIX 选项,可以分组并且前面必须有破折号。
- BSD 选项,可以分组并且不能与破折号一起使用。
- GNU 长选项,前面有两个破折号。
tar 手册页说 "the first argument to tar should be a function; either one of the letters Acdrtux, or one of the long function names."
-f
选项后面必须跟要处理的存档的文件名。
您的选项顺序错误,并且会根据平台和其他情况给出不同的意外结果。 c
应该是第一个选项,f
必须在文件名之前。
tar -cjvhf name.tar.gz <path or file>
和
一样tar cjvhf name.tar.gz <path or file>