Answers:
-
从vcfz
选项中删除。tar
不需要连字符作为选项。
使用连字符时,该-f
选项的参数为z
。因此,该命令实际上是试图将其存档dvr_rdk_v1.tar.gz
并dvr_rdk
存入名为的存档中z
。如果没有连字符,则选项的语义会发生变化,因此命令行上的下一个参数(即归档文件的文件名)将成为f
标志的参数。
此外,还要检查您对执行命令的目录的写许可权。
-
确实有所作为,因为GNU tar很古怪。如果选项参数不以a开头,则不能将其绑定在第一个参数中-
,因此to的参数f
是to 的下一个参数tar
,因此tar vcfz dvr_rdk_v1.tar.gz
等效于tar -v -c -f dvr_rdk_v1.tar.gz -z
。
z
或j
归档压缩是成功的,即使-
参与。当我添加连字符时,它将选项中的最后一个字符视为“文件”。因此,如果使用此选项或,则得到j
或z
作为存档文件。-cvfz
-cvfj
该-f
选项应直接在文件名之前。因此,使用tar -vczf filename.tar.gz
代替-vcfz
j
或者z
使用这些命令-cvfj
和 -cvfz
分别。
该tar命令历史上一直是不遵循Unix下几个命令的一个实用程序语法准则。
tar的标准页面显示:
f
使用第一个文件操作数(如果已指定b,则使用第二个)作为归档文件的名称,而不是依赖于系统的默认文件名
虽然语法准则包括:
准则5:如果将
一个或多个不带选项参数的选项组合成一个'-'分隔符,则应接受最多一个带选项参数的选项。
因此,尽管您键入的命令tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
在较早版本的tar上可以使用,但是某些严格遵循实用程序语法准则编写的tar版本会将其解析为“ z
用作”的文件参数-f
。因此,您应该使用以下内容进行移植:
tar -cvzf dvr_rdk_v1.tar.gz dvr_rdk/
创建档案
$ tar -cvf music.tar Music/
这显示文件和文件夹的列表
$ tar -tvf music.tar
并再次提取
$ tar -xvf music.tar
tar
。
tar
错误,尽管至少要提一下关键区别是什么(移至-f
最后),这很高兴
z
不是放在f
最后,因此我发表了意见。