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

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

问题:


在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
相关文章
|
10天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
93 6
|
11天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
47 3
|
11天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
36 2
|
6天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
34 3
|
11天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
43 3
|
14天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
49 6
|
14天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
16 2
|
6月前
|
运维 Linux
Linux命令(66)之tar
Linux命令(66)之tar
89 6
|
6月前
|
Linux
Linux命令之tar
Linux命令之tar
51 3
|
6月前
|
算法 Linux
【Linux】常用的压缩解压缩命令之tar命令
【Linux】常用的压缩解压缩命令之tar命令
417 0
下一篇
无影云桌面