+ -
当前位置:首页 → 问答吧 → 关于tar打包的一个问题!

关于tar打包的一个问题!

时间:2009-12-25

来源:互联网

我用tar打包一个目录,但是结果是以绝对路径来打的,可是我也没加-P这个参数呀!
如:
tar -cf /xxx/xxx/xxx.tar /xxx

不知道是为什么!

作者: linux701   发布时间: 2009-12-25

改成
cd /
tar -cf /xxx/xxx/xxx.tar xxx
就不是绝对路径打包了

作者: 没本   发布时间: 2009-12-25

可是我得指定一个目录吧,后面只是文件名怎么可以 ,比如我要把/mnt/sda5/myfile目录打包,如果不指定这个目录,tar又怎么知道呢?

作者: linux701   发布时间: 2009-12-25

要把/mnt/sda5/myfile目录打包
cd /mnt/sda5
tar -cf /xxx/xxx/xxx.tar myfile

作者: 没本   发布时间: 2009-12-25

总之你要用相对路径打包就用我的方法,先cd到相对的根下面再指定相对目录。
你要用绝对路径打包就用你原来的方法就行。

作者: 没本   发布时间: 2009-12-25

那我在脚本里就只能再加一个cd 咯,指定到要打包的那个目录下?

如:
cd /xxx/xxx/myfile
tar -cf /mnt/sda5/myfile.tar myfile

作者: linux701   发布时间: 2009-12-25

看来只好这样了,谢谢你了,没本。

作者: linux701   发布时间: 2009-12-25

如果你一定要一行命行解决的话,也可以用
tar -cf -C /xxx/xxx /mnt/sda5/myfile.tar myfile
那个-C就是帮你改变目录用的,总之源文件或者目录不能以/开头,你的方法就是因为用了/开头,打包出来就是绝对路径。个人认为用cd要方便一些,起码手动操作时如此。

作者: 没本   发布时间: 2009-12-25

引用:
作者: linux701
那我在脚本里就只能再加一个cd 咯,指定到要打包的那个目录下?

如:
cd /xxx/xxx/myfile
tar -cf /mnt/sda5/myfile.tar myfile
这个是错的,你如果以/xxx/xxx为根,应该cd /xxx/xxx

如果以/xxx/xxx/myfile为根,应该cd /xxx/xxx/xxx ; tar -cf /mnt/sda5/myfile.tar *
后一种不能用-C的方法,只能先cd再tar

作者: 没本   发布时间: 2009-12-25

加-C不行,还是cd吧,很好用!

作者: linux701   发布时间: 2009-12-25

热门下载

更多