关于tar -P的使用,man tar后得到
-P, –absolute-names, don’t strip leading `/’s from file names
看了书籍解释是
保留绝对路径,即允许备份数据中含有根目录存在之意
看了两种解释都不是特别理解,于是自己实践了一下,搞清楚了tar -P的含义。
以下是不加-P时文件压缩解压缩的过程:
- 首先在/tmp目录创建一个dir目录(待打包)
- 进入home目录,执行tar -jvc -f dir.tar.bz2 /tmp/dir,会出现这样一句话,,
removing leading ‘/’ from member names。
不加-P参数时,默认是是拿掉文件最开始的根目录。 - 查看打包的文件,tar -jvt -f dir.tar.bz2,可以观察到,文件路径是相对路径不是绝对路径。
- 当解包时,文件会解压到当前目录/home下,也就是解压的文件为/home/tmp/dir。
以下为加上-P后的压缩解压缩过程:
1. 首先在/tmp目录创建一个dir目录(待打包)
2. 进入home目录,执行tar -jvc -P -f dir.tar.bz2 /tmp/dir,注意,此时不会出现removing leading ‘/’ from member names那句话。
3. 查看打包的文件,tar -jtP -f dir.tar.bz2,可以观察到,此时文件路径是绝对路径而不是相对路径。
4. 当解包时,文件会解压到压缩包原来的路径,也就是/tmp/dir,不会解压到当前目录/home/tmp/dir下。
以上可以看出,如果你需要将备份文件还原至本来目录时,需要加-P参数,如果只是备份,还原时不用替换原来文件时,不需要加。