tar -P使用

本文通过实践对比了tar命令中-P参数的作用。不使用-P时,tar会移除备份文件中的根目录;而使用-P则保留绝对路径,使解压后的文件还原到原位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于tar -P的使用,man tar后得到

-P, –absolute-names, don’t strip leading `/’s from file names

看了书籍解释是

保留绝对路径,即允许备份数据中含有根目录存在之意

看了两种解释都不是特别理解,于是自己实践了一下,搞清楚了tar -P的含义。

以下是不加-P时文件压缩解压缩的过程:

  1. 首先在/tmp目录创建一个dir目录(待打包)
  2. 进入home目录,执行tar -jvc -f dir.tar.bz2 /tmp/dir,会出现这样一句话,
    removing leading ‘/’ from member names。
    不加-P参数时,默认是是拿掉文件最开始的根目录。
  3. 查看打包的文件,tar -jvt -f dir.tar.bz2,可以观察到,文件路径是相对路径不是绝对路径。
    这里写图片描述
  4. 当解包时,文件会解压到当前目录/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参数,如果只是备份,还原时不用替换原来文件时,不需要加。

### 关于 `tar` 命令 `-P` 选项的使用 在 Ubuntu 的 `tar` 命令中,`-P` 参数的作用是保留绝对路径(Preserve leading slashes)。默认情况下,当使用 `tar` 创建存档时,它会忽略文件名中的前导斜杠 `/` 并将所有文件视为相对路径存储。而通过添加 `-P` 参数,则可以让 `tar` 存档保持原始文件的真实路径结构。 #### 使用场景 该功能对于备份整个系统或者特定目录非常有用,因为它能够确保恢复数据时不会丢失原有的层次关系或位置信息。 #### 示例代码 以下是几个具体的例子来展示如何运用带有 `-P` 标志的 `tar`: 1. **创建带绝对路径的压缩包** 要把根目录下的某个子目录连同其完整路径一起打包并压缩,可以这样操作: ```bash sudo tar -czpvf /backup/home.tar.gz -P /home/user/ ``` 此处命令解释如下: - `sudo`: 获取超级用户权限以便访问受保护区域; - `-c`, `-z`, `-p`, `-v`, `-f`: 各自代表创建新档案、启用gzip压缩算法、维持原有属性(如属组等)、可视化过程以及定义最终输出的目标名称; - `-P`: 明确指示应记录源对象内的全部实际地址而非转换成局部形式; - `/home/user/`: 待处理的具体目标所在之处[^1]. 2. **提取含绝对路径的压缩包** 当我们希望按照原样还原之前制作好的包含完全限定名列表的数据集至本地磁盘之中去的时候,就可以采用下面这样的做法来进行展开动作了。 ```bash sudo tar -xzvpf /backup/home.tar.gz -C / ``` 上述指令里的各个组成部分含义分别为: - `sudo`: 提升执行等级以获得必要的控制权限; - `-x`, `-z`, `-v`, `-p`, `-f`: 对应解压现有文档、激活GZIP解码机制、呈现进展详情给使用者观看的同时还试图复制出匹配项的所有特性设置并且指明输入来源的位置在哪; - `-C /`: 设定好目的端点的确切方位是在操作系统启动分区底下[^2]。 #### 注意事项 由于涉及到了敏感部位的操作,在实际应用当中务必要小心谨慎行事以免误删重要资料造成不可挽回的局面发生哦!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值