[嵌入式er笔记]linux tar 命令只要带一个参数,效率值爆棚

前言/背景

今天get了一个,tar命令 -P(大写)参数的用法,感觉非常有用,做个笔记。

我们平时可能使用比较多的常规打包、解压命令如下:

 tar zcvf xxx.tar.gz  xxx  //在当前工作目录,将xxx打包为xxx.tar.gz
 tar xcvf xxx.tar.gz  //将xxx.tar.gz解压到当前工作目录

以上命令,当打包内容比较少,操作不是很频繁的时候,我们来回跳转服务器、跳转工作目录操作,是可以接受的,但当出现需要在某个用户(机器)不同的特定工作目录打包大量内容,然后再copy到另一个用户(机器)不同的特定工作目录进行解压时,频繁操作,就比较麻烦了。

如公司给大家都换了新的开发编译服务器(硬件更加强劲),此时大家都需要将原来服务器上配置过的环境、工具都搬移到新的服务器上。

此时,如果直接用scp命令  “点对点” 从旧服务器往新服务器拷贝,这样会是一个一个文件的传输拷贝,非压缩式的拷贝,如果大家都在同时操作,带宽也可能扛不住或会很慢。另外,通过scp命令想一步直接拷贝到位,必须要保障scp命令中两边服务器的目录结构对称才行,不然还是得二次操作,拖动/配置文件,命令操作上效率也比较低。

所以,需要寻找一个相对更高效的办法:

1、肯定是需要压缩环境配置/工具配置之后,再进行scp拷贝操作;尽量保证大家拷贝时长最短,占用带宽最小

2、需要找到一个方法,在压缩的时候保留环境配置/工具配置的绝对路径信息,这样我们就可以在旧服务器home目录压缩,然后scp到新服务器home目录,直接进行解压就可以了;而不用再关心/担心挪了服务器后,环境配置/工具配置路径是否对称的问题。scp完成,解压后就可以一步到位。

实操/举例

顺着以上思路寻求解决方法,就get到了 -P(大写)参数大法。

-P(大写)参数说明:

如果压缩时带有-P(大写)参数,就可以保留绝对路径;然后在解压的时候同样带有 -P(大写)参数,就可以还原绝对路径

举例,假如我们在旧服务器上的环境工具都安装在 /opt/tools/ 下,想快速搬迁到新服务器同样的路径下时,就可以一次进行如下操作:

假如我们在旧服务器上的环境工具都安装在 /opt/tools/ 下面,就可以:

1、在旧服务上home目录,带有-P保留绝对路径打包:

 ubuntu $ sudo tar -Pczvf tools.tar.gz /opt/tools/
 

此命令执行后,在旧服务上home目录,就会得到打包文件 tools.tar.gz,我们可以通过vim tools.tar.gz 查看内容,如:

 " tar.vim version v29 " Browsing tarfile /home/ubuntu/tools.tar.gz " Select a file with cursor and press ENTER  /opt/tools/ /opt/tools/xxx /opt/tools/xxxxxxxx /opt/tools/xxxxxxxxxxxxx /opt/tools/xxxxxxxxxxxxxxxxxx ~
               

可以看到,都是带有绝对路径 /opt/tools/ 的信息。

2、通过scp命令,将已打包文件 tools.tar.gz,拷贝至新服务器home目录:

 ubuntu $ scp  name@ip:tools.tar.gz  ~
 

3、在新服务器home目录,带有-P还原绝对路径:

 ubuntu $ sudo tar -Pxzvf tools.tar.gz
 

以上操作依次完成后,在新服务器上,就可以看到 和 旧服务器路径完成对称的 /opt/tools/ 环境工具。

需要注意的

1、假如在解压的时候没有带-P,即就会在当前服务器home目录下,解压出一个 opt/tools目录,而不会解压到/opt/tools,如:

 ubuntu $ sudo tar -xzvf tools.tar.gz ubuntu $ ls  -l ...... drwxr-xr-x 1 root   root    4096 May 22 17:30 opt ......
 

此时解压出的路径,已经不是绝对路径了,没有包含根路径"/"

2、带-P 解压操作时,是按照绝对路径还原的,意味着,如果原来绝对路径下如果存在某些同名文件,会被覆盖,所以在带-P 操作前,要小心,结合自己实际情况衡量操作,防止原有ok的东西被破坏。如果是全新的服务器环境配置或者工具搬迁,就无所谓了,直接弄。

3、假如你刚入职到一家新公司,一定记得,要以迅雷不及掩耳之势,获取老员工的各种环境配置、工具,为第一要务。。。此时,就可以顺便看看老员工知不知道-P大法(我们不能只从老员工那里获取,要互相给予),假如碰巧老员工不知道-P大法,相当于你告诉了他一个牛*大法,什么工具啊、环境配置啊,不仅给你,老员工一高兴,帮你解个bug也是可能的 ^_^  。

当然,环境配置,不仅仅是需要搬移或者平移这些安装路径下的tools,也可能会涉及脚本、环境变量,一家公司特有的配置操作才行。除了自己学习、掌握更多技能的同时,到一家新公司,最主要的就是空杯心态,向其他人、老员工的虚心请教。相信我,保持虚心,永远要比反其道而行的人,收获的信息要多、成长的要快!

From V号:【嵌入式er笔记】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值