LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 778|回复: 9

关于tar打包的一个问题!

[复制链接]
发表于 2009-12-25 02:46:34 | 显示全部楼层 |阅读模式
我用tar打包一个目录,但是结果是以绝对路径来打的,可是我也没加-P这个参数呀!
如:
tar -cf /xxx/xxx/xxx.tar /xxx

不知道是为什么!
发表于 2009-12-25 07:46:13 | 显示全部楼层
改成
cd /
tar -cf /xxx/xxx/xxx.tar xxx
就不是绝对路径打包了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-25 12:52:03 | 显示全部楼层
可是我得指定一个目录吧,后面只是文件名怎么可以 ,比如我要把/mnt/sda5/myfile目录打包,如果不指定这个目录,tar又怎么知道呢?
回复 支持 反对

使用道具 举报

发表于 2009-12-25 12:57:35 | 显示全部楼层
要把/mnt/sda5/myfile目录打包
cd /mnt/sda5
tar -cf /xxx/xxx/xxx.tar myfile
回复 支持 反对

使用道具 举报

发表于 2009-12-25 13:01:12 | 显示全部楼层
总之你要用相对路径打包就用我的方法,先cd到相对的根下面再指定相对目录。
你要用绝对路径打包就用你原来的方法就行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-25 13:23:33 | 显示全部楼层
那我在脚本里就只能再加一个cd 咯,指定到要打包的那个目录下?

如:
cd /xxx/xxx/myfile
tar -cf /mnt/sda5/myfile.tar myfile
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-25 13:32:56 | 显示全部楼层
看来只好这样了,谢谢你了,没本。
回复 支持 反对

使用道具 举报

发表于 2009-12-25 13:59:27 | 显示全部楼层
如果你一定要一行命行解决的话,也可以用
tar -cf -C /xxx/xxx /mnt/sda5/myfile.tar myfile
那个-C就是帮你改变目录用的,总之源文件或者目录不能以/开头,你的方法就是因为用了/开头,打包出来就是绝对路径。个人认为用cd要方便一些,起码手动操作时如此。
回复 支持 反对

使用道具 举报

发表于 2009-12-25 14:02:46 | 显示全部楼层
Post by linux701;2059167
那我在脚本里就只能再加一个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 15:38:36 | 显示全部楼层
加-C不行,还是cd吧,很好用!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表