南国迦叶 发表于 2011-6-5 14:03:42

关于linux命令tar xvf与tar zxvf的求解

我看到教材上是这样介绍的:
1.    tar xvf      将目标文件或目录解包
2.    tar cvf      将目录下的文件或目录打成tar包
3.    tar zxvf    将目录或文件解压缩并解包
4.    tar zcvf    将目录或文件打成tar包并压缩

我知道第一个与第二个是一组,第三个与第四个是一组。但是不是很清楚第一个与第三个,第二与第四个的区别,我的理解是文件解压后不就是把原来的压缩包解开了吗,怎么还有个解压并解包呢?不懂.......
同样的,第四个也存在同样的疑问。希望有人指点!

另外,我在练习的时候发现xvf/cvf/zxvf/zcvf 这四个前面加个横线“-”与不加效果是一样的,至少视觉效果是一样的。
但是又怀疑加与不加肯定是有区别的,就是不知道区别在哪儿?
因为我知道在切换用户的时候用su于su -效果是不一样的,后面的表示环境变量也随之切换过去,所以不知道上面是否有横线的区别是否可以类比su命令的是否有横线一样理解?
拜谢先!

bestgo 发表于 2011-6-5 21:23:30

学会看help。
man tar或者tar -h, tar --help

-f, --file=ARCHIVE         use archive file or device ARCHIVE
-c, --create               create a new archive
-x, --extract, --get       extract files from an archive
-z, --gzip, --gunzip, --ungzip   filter the archive through gzip
-j, --bzip2                filter the archive through bzip2
-v, --verbose            verbosely list files processed

每个参数都有说明,你那种写法是几个放在一起的组合。加不加-其实都一样的,那是个历史问题,你喜欢用哪种都可以。

南国迦叶 发表于 2011-6-6 07:54:26

回复 2# bestgo

1.历史问题?啥意思哦,那反正有没有-都一样是吧,不涉及环境变量是吧
2.它这些个参数,想r、v、c等在实际的使用中可以调换顺序吗?比如cvf和vcf都行吗?
3.还有假如在/etc中的etc目录下有a,b,c,d四个目录,要将其中的部分目录进行打包怎么操作啊,可以选择某一目录下部分目录和文件进行打包或压缩码?

msnshow 发表于 2011-6-6 14:03:35

应该是指旧版本tar命令的用法吧

与顺序没什么关系

tar -zcf xx.tar.gz a b c d

千里 发表于 2011-6-6 22:44:56

一个参数代表一种效果,多一个参数多一个效果。没别的,顺序是没有影响的。

longmashan 发表于 2011-6-20 17:40:33

zxvf解压tar。gz   xvf解压tar

koala114 发表于 2011-6-21 06:15:57

1.        历史问题?啥意思哦,那反正有没有-都一样是吧,不涉及环境变量是吧
只有GNU版本的tar支持z选项,不过现在的Linux基本上都是GNU的了

2.        它这些个参数,想r、v、c等在实际的使用中可以调换顺序吗?比如cvf和vcf都行吗?
一般没顺序,只是有些版本的tar的第一个参数必须是function,如c、t、x,后面跟option如v、k、f、j

3.        还有假如在/etc中的etc目录下有a,b,c,d四个目录,要将其中的部分目录进行打包怎么操作啊,可以选择某一目录下部分目录和文件进行打包或压缩码?
可以。比如你先进入/etc 然后执行tar cvf test.tar a c

koala114 发表于 2011-6-21 06:16:35

1.        历史问题?啥意思哦,那反正有没有-都一样是吧,不涉及环境变量是吧
只有GNU版本的tar支持z选项,不过现在的Linux基本上都是GNU的了

2.        它这些个参数,想r、v、c等在实际的使用中可以调换顺序吗?比如cvf和vcf都行吗?
一般没顺序,只是有些版本的tar的第一个参数必须是function,如c、t、x,后面跟option如v、k、f、j

3.        还有假如在/etc中的etc目录下有a,b,c,d四个目录,要将其中的部分目录进行打包怎么操作啊,可以选择某一目录下部分目录和文件进行打包或压缩码?
可以。比如你先进入/etc 然后执行tar cvf test.tar a c
页: [1]
查看完整版本: 关于linux命令tar xvf与tar zxvf的求解