当前位置:首页 > 技术文章 > 正文内容

在Linux中使用tar命令打包绝对路径的问题

douba31个月前 (07-24)技术文章15

问题:

在Linux 系统中,使用 tar 命令进行文件的压缩打包,解压后会发现整个路径也都一起打包进去了,特别是在脚本中打包文件时比较麻烦!

问题复现:

[root@Jenkins ~]# ls /var/lib/jenkins/workspace/freestyle-nongye     #查看web项目的代码文件
css     g2.jpg                g4.jpg                g5.jpg      js
fonts   g3-1646724756761.jpg  g5-1646724774424.jpg  images      README.md
g1.jpg  g3.jpg                g5-1646724779175.jpg  index.html  slid.jpg

[root@Jenkins ~]# tar -czf web.tar.gz /var/lib/jenkins/workspace/freestyle-nongye/*     #使用tar打包绝对路径下的文件
tar: 从成员名中删除开头的“/”

[root@Jenkins ~]# ls
web.tar.gz

[root@Jenkins ~]# tar -xf web.tar.gz         #解压打包好的文件

[root@Jenkins ~]# ls       #可以看到并没有只打包代码文件,而是将整个绝对路径都打包进去了
var    web.tar.gz

[root@Jenkins ~]# cd var/lib/jenkins/workspace/freestyle-nongye/    #进入查看

[root@Jenkins freestyle-nongye]# pwd
/root/var/lib/jenkins/workspace/freestyle-nongye       #可以看到解压后整个绝对路径都打包进去了

[root@Jenkins freestyle-nongye]# ls
css     g2.jpg                g4.jpg                g5.jpg      js
fonts   g3-1646724756761.jpg  g5-1646724774424.jpg  images      README.md
g1.jpg  g3.jpg                g5-1646724779175.jpg  index.html  slid.jpg

解决方法:

-C 临时切换到指定的目录。(执行打包前,在源文件的绝对路径前面-大写的参数C,后面在跟 . 即可)

[root@Jenkins ~]# tar -czf web.tar.gz -C /var/lib/jenkins/workspace/freestyle-nongye .   #临时切换到/var/lib/jenkins/workspace/freestyle-nongye目录下,使用tar打包该目录下所有的代码文件

[root@Jenkins ~]# ls
web.tar.gz

[root@Jenkins ~]# tar xf web.tar.gz -C /opt/     #解压打包文件至/opt目录下

[root@Jenkins ~]# ls /opt/     #可以看到这次只打包了项目文件夹中所有的代码文件
css     g2.jpg                g4.jpg                g5.jpg      js         
fonts   g3-1646724756761.jpg  g5-1646724774424.jpg  images      README.md 
g1.jpg  g3.jpg                g5-1646724779175.jpg  index.html  slid.jpg  


如果您喜欢本文,就请动动您的发财手为本文点赞评论转发,让我们一起学习更多运维相关知识,最后请记得关注我。

相关文章

如何查看Linux的IP地址(linux中怎么查看ip)

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。如需学习视频,请复制以下信息到手机浏览器或电脑浏览器上:zc...

Linux 文件搜索神器 find 实战详解,建议收藏

在 Linux 系统使用中,作为一个管理员,我希望能查找系统中所有的大小超过 200M 文件,查看近 7 天系统中哪些文件被修改过,找出所有子目录中的可执行文件,这些任务需求 find 命令都可以轻松...

Linux常用文件操作命令(linux基本文件操作)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本 # ls --version ls (GNU coreutils) 8.4...

Linux系统11个高级文件与目录操作命令示例

Linux高级文件与目录操作命令33个实用示例详解本文深入讲解Linux系统中11个高级文件与目录操作命令,每个命令有3个实用示例,共33个示例,帮助您掌握这些命令的核心用法和实用技巧。一、find...

Linux系统保存文件命令的详细介绍

在windows中要想保存文件只要使用Ctrl+s即可,但是在Linux系统中呢?也是用快捷键吗?当然不是,下面开源字节为大家详细讲解一下Linux系统保存文件的命令。1.进入文件 vim 文件名(v...

Linux是啥?我们来聊聊?(linux叫啥)

首先问大家一下,你们知道Linux是啥不?要说起电脑,windows就会浮现在大家的脑海里,要问起Linux,据我了解有部分人不清楚,就算经常用到电脑的公司企业白领有的也了解甚少。那我先来简单说一下L...