1、tar指令(拆包后会覆盖同名文件,需注意。)
(1)tar -xf xxx.tar.gz或tar -xf xxx.tar.bz2,即便成功命名打包,但由于没有实际压缩,只是个名字而且,并未起到压缩作用,当解压时如果添加了z或j参数是无法解压文件的。但如果用tar -zxf xxx.tar.gz或tar jxf xxx.tar.bz2,打包且压缩文件,后续直接用tar xf可以直接解压gz或bz2文件,具体原因我也不清楚为什么。
证明未压缩可见文件很大。
[root@localhost miao]# ll
总用量 4
drwxrwxrwx 10 lin lin 167 2月 19 11:19 elasticsearch-8.0.0
drwxrwxrwx 7 lin lin 4096 11月 6 2020 elasticsearch-head-master
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
drwxr-xr-x 2 root 0 59 2月 24 11:40 test
[root@localhost miao]# tar cvf 111.tar.gz nnn test
nnn/
test/
test/t1.txt
test/1.txt
test/2.txt
test/3.txt
[root@localhost miao]# tar cvf 222.tar.bz2 nnn test
nnn/
test/
test/t1.txt
test/1.txt
test/2.txt
test/3.txt
[root@localhost miao]# ll
总用量 28
-rw-r--r-- 1 root 0 10240 2月 24 11:41 111.tar.gz
-rw-r--r-- 1 root 0 10240 2月 24 11:41 222.tar.bz2
drwxrwxrwx 10 lin lin 167 2月 19 11:19 elasticsearch-8.0.0
drwxrwxrwx 7 lin lin 4096 11月 6 2020 elasticsearch-head-master
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
drwxr-xr-x 2 root 0 59 2月 24 11:40 test
[root@localhost miao]# tar -zxvf 111.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
[root@localhost miao]# tar -jxvf 222.tar.bz2
bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Error is not recoverable: exiting now
[root@localhost miao]# tar -zcvf gz111.tar.gz nnn test
nnn/
test/
test/t1.txt
test/1.txt
test/2.txt
test/3.txt
[root@localhost miao]# tar -jcvf bz2222.tar.bz2 nnn test
nnn/
test/
test/t1.txt
test/1.txt
test/2.txt
test/3.txt
[root@localhost miao]# ll
总用量 36
-rw-r--r-- 1 root 0 10240 2月 24 11:41 111.tar.gz
-rw-r--r-- 1 root 0 10240 2月 24 11:41 222.tar.bz2
-rw-r--r-- 1 root 0 186 2月 24 11:44 bz2222.tar.bz2
drwxrwxrwx 10 lin lin 167 2月 19 11:19 elasticsearch-8.0.0
drwxrwxrwx 7 lin lin 4096 11月 6 2020 elasticsearch-head-master
-rw-r--r-- 1 root 0 183 2月 24 11:44 gz111.tar.gz
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
drwxr-xr-x 2 root 0 59 2月 24 11:40 test
[root@localhost miao]# tar -xf bz2222.tar.bz2 -C /opt
[root@localhost miao]# ll
总用量 36
-rw-r--r-- 1 root 0 10240 2月 24 11:41 111.tar.gz
-rw-r--r-- 1 root 0 10240 2月 24 11:41 222.tar.bz2
-rw-r--r-- 1 root 0 186 2月 24 11:44 bz2222.tar.bz2
drwxrwxrwx 10 lin lin 167 2月 19 11:19 elasticsearch-8.0.0
drwxrwxrwx 7 lin lin 4096 11月 6 2020 elasticsearch-head-master
-rw-r--r-- 1 root 0 183 2月 24 11:44 gz111.tar.gz
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
drwxr-xr-x 2 root 0 59 2月 24 11:40 test
[root@localhost miao]# cd /opt
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root 0 6 2月 24 11:22 a
drwxr-xr-x 2 root 0 6 2月 24 11:22 aa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 ab
drwxr-xr-x 2 root 0 6 2月 24 11:22 bababa
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
drwxr-xr-x 2 root 0 59 2月 24 11:40 test
(2)从tar包里解压单个文件并放到指定路径。
只想解压压缩包中的nnn文件与test文件中的t1.txt,并将其放到指定路径该怎样处理?
tar -jxvf xxx.tar.bz2 -C /opt nnn test/t1.txt
tar [参数] 包文件 -C 【目标路径】 需要的文件
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root 0 6 2月 24 11:22 a
drwxr-xr-x 2 root 0 6 2月 24 11:22 aa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 ab
drwxr-xr-x 2 root 0 6 2月 24 11:22 bababa
[root@localhost opt]# cd /miao
[root@localhost miao]# tar -jxvf bz2222.tar.bz2 -C /opt nnn/
nnn/
[root@localhost miao]# ll
总用量 12
-rw-r--r-- 1 root 0 186 2月 24 11:44 bz2222.tar.bz2
drwxrwxrwx 10 lin lin 167 2月 19 11:19 elasticsearch-8.0.0
drwxrwxrwx 7 lin lin 4096 11月 6 2020 elasticsearch-head-master
-rw-r--r-- 1 root 0 183 2月 24 11:44 gz111.tar.gz
[root@localhost miao]# cd /opt
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root 0 6 2月 24 11:22 a
drwxr-xr-x 2 root 0 6 2月 24 11:22 aa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 ab
drwxr-xr-x 2 root 0 6 2月 24 11:22 bababa
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
[root@localhost opt]# rm -rf nnn
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root 0 6 2月 24 11:22 a
drwxr-xr-x 2 root 0 6 2月 24 11:22 aa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 ab
drwxr-xr-x 2 root 0 6 2月 24 11:22 bababa
[root@localhost opt]# cd /miao
[root@localhost miao]# tar -jxvf bz2222.tar.bz2 -C /opt nnn test/t1.txt
nnn/
test/t1.txt
[root@localhost miao]# cd /opt
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root 0 6 2月 24 11:22 a
drwxr-xr-x 2 root 0 6 2月 24 11:22 aa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 ab
drwxr-xr-x 2 root 0 6 2月 24 11:22 bababa
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
drwxr-xr-x 2 root 0 20 2月 24 14:47 test
[root@localhost opt]# cd test
[root@localhost test]# ll
总用量 0
-rw-r--r-- 1 root 0 0 2月 24 11:40 t1.txt
[root@localhost test]#
2、删除指定文件之外的文件。
eg.除了含有“a和b”命名的文件,其他全部删除。
ls |grep -v a |xargs rm -rf
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root 0 6 2月 24 11:22 a
drwxr-xr-x 2 root 0 6 2月 24 11:22 aa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 ab
drwxr-xr-x 2 root 0 6 2月 24 11:22 bababa
drwxr-xr-x 2 root 0 6 2月 24 11:40 nnn
drwxr-xr-x 2 root 0 20 2月 24 14:47 test
[root@localhost opt]# ls |grep -v a
nnn
test
[root@localhost opt]# ls |grep -v a |xargs rm
rm: 无法删除"nnn": 是一个目录
rm: 无法删除"test": 是一个目录
[root@localhost opt]# ls |grep -v a |xargs rm -rf
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root 0 6 2月 24 11:22 a
drwxr-xr-x 2 root 0 6 2月 24 11:22 aa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 aaaa
drwxr-xr-x 2 root 0 6 2月 24 11:22 ab
drwxr-xr-x 2 root 0 6 2月 24 11:22 bababa
[root@localhost opt]#
3、压缩解压缩gzip和gunzip
压缩:gzip 4
简单解压:(1)gzip -d 4.gz (2)gunzip 4.gz
保留源文件的压缩:gzip -c 4 >4.gz
保留压缩包的解压,会覆盖同名文件:gunzip -c 4.gz >4
将4压缩成666.gz包:gzip -c 4 >666.gz
解压666.gz包时,保留原来的文件名解压:gunzip -N 666.gz
将4.gz解压成666文件:gunzip -c 4.gz >666
目前我的测试中,-cN参数无法同时使用。
gzip -r test 将test目录下的所有子文件分别压缩,test还是目录,因为gzip命令只能压缩不能打包。
4、grep查找文本中内容,注意只能筛查出带有关键字的那几行。
grep a 1在1文件中找出带a的文本,凡是包含a的行都显示出来。
grep -c a 1在1文件中找出包含a的行数,只显示行数结果。
grep ^aj 1在1文件中找出aj开头的文本,并显示出来。
[root@localhost dangdang]#more 1
adlajflkaj;gl
alfj;laflkan kj
faj;bknlh
kz;xvxja
kfklngl;keg
iuonkn
xbxfb
;p[oa[jgkqlng
lknsblqneljhouehofzlb
lknavlk;aoibhao
vc xcbnlkbd
.smge.smg nleirugondfks
lkboxidorjnwknglbij
agbljahp9ba
agnle;g8udoanq\hvodijONRKG
ALKSNVLZNXP
nlOIn;BOHINLK
lknvlid87
23j3pohi9
lavj-0bw
flwnkfa
a jalkflkasfiohoiahg;ajg;oisgja;flahfoihaonvnvl;ajf
llkjfijijijaklfklaj kj jlkfjalkjflkjlkjlkjljljnix8vi3q2jv
232lnglknba
blnvisdgqnn
nslnvoiasg
fnalkn oiawhev
nsnvioevlnajv
nl:Nvz odihfv9a
qflkWNVALISHVQ
QKENFLQNVn
;NL;Nl;nO;NLNO
vwiaqrnkvn
qgnq43 g34 g
35h2pojtneoig
[root@localhost dangdang]#grep a 1
adlajflkaj;gl
alfj;laflkan kj
faj;bknlh
kz;xvxja
;p[oa[jgkqlng
lknavlk;aoibhao
agbljahp9ba
agnle;g8udoanq\hvodijONRKG
lavj-0bw
flwnkfa
a jalkflkasfiohoiahg;ajg;oisgja;flahfoihaonvnvl;ajf
llkjfijijijaklfklaj kj jlkfjalkjflkjlkjlkjljljnix8vi3q2jv
232lnglknba
nslnvoiasg
fnalkn oiawhev
nsnvioevlnajv
nl:Nvz odihfv9a
vwiaqrnkvn
[root@localhost dangdang]#grep a 2
shitajiushitashitajiushitawomendepengyouxiaonezha
[root@localhost dangdang]#grep a 3
adafaszcsadf
shitajiushitashitajiushitawomendepengyouxiaonezha
[root@localhost dangdang]#grep -c a
^C
[root@localhost dangdang]#grep -c a 1
18
[root@localhost dangdang]#grep -c a 2
1
[root@localhost dangdang]#grep -c a 3
2
[root@localhost dangdang]#grep -c aj 3
1
[root@localhost dangdang]#grep -c aj 1
5
[root@localhost dangdang]#grep ^ag 1
agbljahp9ba
agnle;g8udoanq\hvodijONRKG