day10-2-Linux基础命令详解(5)

01.知识点回顾

一阶段学习方式: 
1.less 一页一页的查看大文件 (扩展 切割大文件 20M的文件切割成2个10M的)
2.more
3.xargs
4.sort 排序
     -n 按照数字正序排序
     -r 逆序排序
     -k 指定列排序
5.uniq -c 去重统计
6.diff 
7.alias  alias 命令=‘必须是可执行命令’
8.yum 软件安装
      yum -y install 包名称
      yum -y remove  包名称
      yum repolist
      yum clean all
      yum reinstall
      扩展: 本地的rpm包也可以使用yum方式进行安装
      test-1.2.3.rpm
      rpm -ivh test-1.2.3.rpm
      yum -y localinstall test-1.2.3.rpm
      
9.rpm 软件安装
      rpm -ivh package.rpm
      rpm -e  卸载
      rpm -qa wget
      
      rpm -ql
      rpm -qc

02 linux常用命令

find 查找文件

1.find查找文件

按文件名称查找

1.语法格式:
	   
	    find 路径 -name 文件名  # 按名字查找
	         
           -name 按文件名称查找	
案例1: 按照名字查找
格式:find ./  -name "1.txt"
[root@oldboyedu ~]# find ./ -name "1g.txt"
./1g.txt

查找/opt目录下的1.log文件
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Jul 12 10:50 1.log
-rw-r--r-- 1 root root 0 Jul 12 10:51 1.txt
-rw-r--r-- 1 root root 0 Jul 12 10:51 2.txt
-rw-r--r-- 1 root root 0 Jul 12 10:51 3.txt
-rw-r--r-- 1 root root 0 Jul 12 10:51 4.txt

[root@oldboyedu ~]# find /opt/ -name "1.log"
/opt/1.log

案例2: 查找所有.txt结尾的
[root@oldboyedu ~]# find /opt/ -name "*.txt"
/opt/1.txt
/opt/2.txt
/opt/3.txt
/opt/4.txt
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Jul 12 10:55 11.txt
-rw-r--r-- 1 root root 0 Jul 12 10:50 1.log
-rw-r--r-- 1 root root 0 Jul 12 10:51 1.txt
-rw-r--r-- 1 root root 0 Jul 12 10:51 2.txt
-rw-r--r-- 1 root root 0 Jul 12 10:51 3.txt
-rw-r--r-- 1 root root 0 Jul 12 10:51 4.txt
[root@oldboyedu ~]# find /opt/ -name "[0-9].txt"
/opt/1.txt
/opt/2.txt
/opt/3.txt
/opt/4.txt
[root@oldboyedu ~]# find /opt/ -name "[0-9][0-9].txt"
/opt/11.txt


案例3: 不区分大小写
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Jul 12 10:50 1.log
-rw-r--r-- 1 root root 0 Jul 12 10:56 1.LOG
-rw-r--r-- 1 root root 0 Jul 12 10:56 2.LOG
-rw-r--r-- 1 root root 0 Jul 12 10:56 3.LOG

[root@oldboyedu ~]# find /opt/ -iname "*.log"
/opt/1.log
/opt/1.LOG
/opt/2.LOG
/opt/3.LOG

按照文件类型查找

1.语法结构:
		find 路径 -type 文件类型
		
			-type 按照文件类型查找
文件类型:
f  普通文件 常用
d  目录     常用
l  软链接
c  字节
b  块设备
2.案例
环境准备:
[root@oldboyedu ~]# mkdir /opt/oldboy{1..4}
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Jul 12 10:50 1.log
-rw-r--r-- 1 root root 0 Jul 12 10:56 1.LOG
-rw-r--r-- 1 root root 0 Jul 12 10:56 2.LOG
-rw-r--r-- 1 root root 0 Jul 12 10:56 3.LOG
drwxr-xr-x 2 root root 6 Jul 12 10:59 oldboy1
drwxr-xr-x 2 root root 6 Jul 12 10:59 oldboy2
drwxr-xr-x 2 root root 6 Jul 12 10:59 oldboy3
drwxr-xr-x 2 root root 6 Jul 12 10:59 oldboy4
1)查找/opt目录下所有的普通文件
[root@oldboyedu ~]# find /opt/ -type f
/opt/1.log
/opt/1.LOG
/opt/2.LOG
/opt/3.LOG

2)查找/opt目录下所有的目录文件
[root@oldboyedu ~]# find /opt/ -type d
/opt/
/opt/oldboy1
/opt/oldboy2
/opt/oldboy3
/opt/oldboy4

3)(组合查找)
查找/opt目录下名为oldboy3的目录文件
[root@oldboyedu ~]# find /opt/ -type d -name "oldboy3"
/opt/oldboy3

按照inode查找

1.语法结构:
		find 路径 -inum inode号
			-inum 按照inode查找
2.案例
[root@oldboyedu ~]# find /opt/ -inum 17340825
/opt/5

按照深度查找

1.语法结构:
		find 路径 -maxdepth 深度

			-maxdepth 按照深度查找
2.案例
[root@oldboyedu ~]# tree /opt/
/opt/
├── 1.log
├── 1.LOG
├── 2.LOG
├── 3.LOG
├── oldboy1
│   ├── 10.txt
│   ├── 1.txt
│   ├── 2.txt
│   ├── 3.txt
│   ├── 4.txt
│   ├── 5.txt
│   ├── 6.txt
│   ├── 7.txt
│   ├── 8.txt
│   └── 9.txt
├── oldboy2
├── oldboy3
└── oldboy4

[root@oldboyedu ~]# find /opt/ -type f
/opt/1.log
/opt/1.LOG
/opt/2.LOG
/opt/3.LOG
/opt/oldboy1/1.txt
/opt/oldboy1/2.txt
/opt/oldboy1/3.txt
查找 -maxdepth=1 的普通文件
[root@oldboyedu ~]# find /opt/ -maxdepth 1 -type f
/opt/1.log
/opt/1.LOG
/opt/2.LOG
/opt/3.LOG

按照文件大小查找

1.语法结构:
find ./ -size 10M  # 等于10M的文件
find ./ -size -10M # 小于10M的文件
find ./ -size +10M # 大于10M的文件

	-size 按照文件大小查找
2.案例
如何查看文件的大小: ll -h
[root@oldboyedu ~]# ll -h 1g.txt 
-rw-r--r-- 1 root root 1000M Jul 12 10:26 1g.txt
1)查找当前目录大于10M的文件
[root@oldboyedu ~]# find ./ -size +10M
./gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
./1g.txt

2)查找/opt目录下文件大小小于10m的文件
[root@oldboyedu ~]# find /opt/ -size -10M
/opt/
/opt/1.log
/opt/1.LOG
/opt/2.LOG
/opt/3.LOG

3)查找当前目录文件大小等于10M的文件
[root@oldboyedu ~]# dd if=/dev/zero of=10m.txt bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0591945 s, 177 MB/s
[root@oldboyedu ~]# ll -h 10m.txt 
-rw-r--r-- 1 root root 10M Jul 12 11:28 10m.txt
------------------------------------------------------------
[root@oldboyedu ~]# find ./ -size 10M
./10m.txt

4) 查找当前目录下文件大小大于300M 小于500M的文件
[root@oldboyedu ~]# find ./ -size +300M -size -500M
./gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
[root@oldboyedu ~]# ll -h gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm 
-rw-r--r-- 1 root root 372M Aug 22  2018 gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
[root@oldboyedu ~]# find ./ -size +300M -size -500M -name "gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm"
./gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

默认为并且关系:
[root@oldboyedu ~]# find ./ -type f -size +300M -size -500M
./gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

5)查找文件大于300M的 或者名称为1.txt
[root@oldboyedu ~]# find ./  -type f -size +300M -or -name "1.txt"
./gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
./1g.txt
[root@oldboyedu ~]# touch 1.txt
[root@oldboyedu ~]# find ./  -type f -size +300M -or -name "1.txt"
./gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
./1g.txt
./1.txt

企业实践;经常用来查找系统中的大文件:
[root@oldboyedu ~]# find / -size +500M

按照时间查找

1.语法结构:
find ./ -mtime 7     # 第7天的
find ./ -mtime -7    # 7天内的
find ./ -mtime +7    # 7天前的

  -mtime modify time 显示的是文件内容被修改的最后时间 按照文件修改时间查找
 
2.案例
环境准备:
[root@oldboyedu opt]# rm -rf *
[root@oldboyedu opt]# ll
total 0
[root@oldboyedu opt]# touch {1..3}.txt
[root@oldboyedu opt]# ll
total 0
-rw-r--r-- 1 root root 0 Jul 12 11:51 1.txt
-rw-r--r-- 1 root root 0 Jul 12 11:51 2.txt
-rw-r--r-- 1 root root 0 Jul 12 11:51 3.txt
[root@oldboyedu opt]# date -s 20081010
Fri Oct 10 00:00:00 CST 2008
[root@oldboyedu opt]# touch {5..10}.log
[root@oldboyedu opt]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 10 00:00 10.log
-rw-r--r-- 1 root root 0 Jul 12  2023 1.txt
-rw-r--r-- 1 root root 0 Jul 12  2023 2.txt
-rw-r--r-- 1 root root 0 Jul 12  2023 3.txt
-rw-r--r-- 1 root root 0 Oct 10 00:00 5.log
-rw-r--r-- 1 root root 0 Oct 10 00:00 6.log
-rw-r--r-- 1 root root 0 Oct 10 00:00 7.log
-rw-r--r-- 1 root root 0 Oct 10 00:00 8.log
-rw-r--r-- 1 root root 0 Oct 10 00:00 9.log
[root@oldboyedu opt]# ntpdate ntp1.aliyun.com
12 Jul 11:52:04 ntpdate[7135]: step time server 120.25.115.20 offset 465565903.267279 sec

--------------------------------------------------------
1)查找7天内被修改过的文件
[root@oldboyedu opt]# find ./ -mtime -7
./1.txt
./2.txt
./3.txt

2)查找7天前被修改过的文件
[root@oldboyedu opt]# find ./ -mtime +7
./
./5.log
./6.log
./7.log
./8.log
./9.log
./10.log

查找7天前修改过的文件
[root@oldboyedu opt]# find ./ -type f -mtime +7
./5.log
./6.log
./7.log
./8.log
./9.log
./10.log

企业中: 查找7天前 删除7天前的内容 保留最近7天的数据
       查找n天内的 网站被攻击 查找出哪些文件被篡改 find /code/ -mtime -3
find小结:
1.find ./ -name "name"  # 按照名称查找
2.find ./ -iname "name" # 不区分大小写
3.find ./ -name "*.txt" # 不区分大小写
4.find ./ -inum 234343  # 按inode查找
5.find ./ -maxdepth 1   # 按照深度等级查找
6.find ./ -type f       # 按照文件类型查找
                d b c 文件类型
7.find ./ -type f -name "1.txt" # 查找文件名称为1.txt
8.find ./ -size +10    # 大于10的  -10小于10M  10 等于10M的
9.find ./ -type f -name "*.log" -size +50M # 并且关系
10.find ./ -type f -mtime +7    # 查找7天前的文件 -7 7天内的文件
11.find ./ -type f -o -size 100M # 查找出所有普通文件或者文件大小为100M的

小结1:

find小结:
1.find ./ -name "name"  # 按照名称查找
2.find ./ -iname "name" # 不区分大小写
3.find ./ -name "*.txt" # 不区分大小写
4.find ./ -inum 234343  # 按inode查找
5.find ./ -maxdepth 1   #按照深度等级查找
6.find ./ -type f       # 按照文件类型查找
                d b c 文件类型
7.find ./ -type f -name "1.txt" # 查找文件名称为1.txt
8.find ./ -size +10    # 大于10的  -10小于10M  10 等于10M的
9.find ./ -type f -name "*.log" -size +50M # 并且关系
10.find ./ -type f -mtime +7    # 查找7天前的文件 -7 7天内的文件
11.find ./ -type f -o -size 100M # 查找出所有普通文件或者文件大小为100M的
2.将find结果交给其他命令处理
  • 管道符+xargs
环境准备:
[root@oldboyedu ~]# rm -rf /opt/* /tmp/*
[root@oldboyedu ~]# touch /opt/{1..3}.txt
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Jul 12 15:26 1.txt
-rw-r--r-- 1 root root 0 Jul 12 15:26 2.txt
-rw-r--r-- 1 root root 0 Jul 12 15:26 3.txt
1) 查找/opt/下的1.txt文件 复制到/tmp目录下
第一步、查找/opt目录下名为1.txt文件
[root@oldboyedu ~]# find /opt/ -name "1.txt"
/opt/1.txt
第二步、将查找到的文件插入到指定的{}内供 cp调用
[root@oldboyedu ~]# find /opt/ -name "1.txt"|xargs -i cp {} /tmp/
[root@oldboyedu ~]# ll /tmp/
total 0
-rw-r--r-- 1 root root 0 Jul 12 15:29 1.txt

2)查找/tmp/1.txt 然后删除
第一步、查找
[root@oldboyedu ~]# find /tmp/ -name "1.txt"
/tmp/1.txt
第二步、将查找到文件给rm调用
[root@oldboyedu ~]# find /tmp/ -name "1.txt"|xargs rm

拷贝多个文件到/tmp目录
[root@oldboyedu ~]# find /opt/ -type f|xargs ls -l
-rw-r--r-- 1 root root 0 Jul 12 15:26 /opt/1.txt
-rw-r--r-- 1 root root 0 Jul 12 15:26 /opt/2.txt
-rw-r--r-- 1 root root 0 Jul 12 15:26 /opt/3.txt
[root@oldboyedu ~]# find /opt/ -type f|xargs -i cp {} /tmp/
[root@oldboyedu ~]# ll /tmp/
total 0
-rw-r--r-- 1 root root 0 Jul 12 15:34 1.txt
-rw-r--r-- 1 root root 0 Jul 12 15:34 2.txt
-rw-r--r-- 1 root root 0 Jul 12 15:34 3.txt


案例3: 将查找到的文件交给cat查看内容
[root@oldboyedu ~]# find /opt/ -name "1.txt"|xargs cat
aaaaaaaaaa
test
oldboy
hehe

案例4: 将查找到的文件交给mv处理
[root@oldboyedu ~]# find /opt/ -name "1.txt"
/opt/1.txt
[root@oldboyedu ~]# find /opt/ -name "1.txt"|xargs -i mv {} /tmp
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Jul 12 15:26 2.txt
-rw-r--r-- 1 root root 0 Jul 12 15:26 3.txt
[root@oldboyedu ~]# ll /tmp/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:34 1.txt
  • exec
第二种方式: 使用exec
[root@oldboyedu ~]# find /opt/ -name "2.txt"
/opt/2.txt
[root@oldboyedu ~]# find /opt/ -name "2.txt" -exec cp {} /tmp/ \;
[root@oldboyedu ~]# ll /tmp/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:34 1.txt
-rw-r--r-- 1 root root  0 Jul 12 15:40 2.txt
注意: -exec后面不识别别名
[root@oldboyedu ~]# find /opt/ -name "3.txt" -exec ls -l {} \;
-rw-r--r-- 1 root root 0 Jul 12 15:26 /opt/3.txt

删除:
[root@oldboyedu ~]# find /opt/ -name "3.txt" -exec rm {}  \;

移动:
[root@oldboyedu ~]# ll /tmp/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:34 1.txt
-rw-r--r-- 1 root root  0 Jul 12 15:40 2.txt
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Jul 12 15:26 3.txt
[root@oldboyedu ~]# find /tmp/ -name "*.txt"
/tmp/1.txt
/tmp/2.txt
[root@oldboyedu ~]# find /tmp/ -name "*.txt" -exec mv {} /opt/ \;
[root@oldboyedu ~]# ll /tmp/
total 0
[root@oldboyedu ~]# ll /opt/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:34 1.txt
-rw-r--r-- 1 root root  0 Jul 12 15:40 2.txt
-rw-r--r-- 1 root root  0 Jul 12 15:26 3.txt

  • 反引号或者$()
# 第三种: 反引号或者$()
[root@oldboyedu ~]# ll /opt/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:34 1.txt
-rw-r--r-- 1 root root  0 Jul 12 15:40 2.txt
-rw-r--r-- 1 root root  0 Jul 12 15:26 3.txt
[root@oldboyedu ~]# ll /tmp/
total 0

案例: 将结果交给cp命令
[root@oldboyedu ~]# find /opt/ -name "1.txt"
/opt/1.txt
[root@oldboyedu ~]# cp `find /opt/ -name "1.txt"` /tmp/
[root@oldboyedu ~]# ll /tmp/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:46 1.txt

$()和`` 意义相同的
[root@oldboyedu ~]# cp $(find /opt/ -name "1.txt") /tmp/

案例2: 将结果交给rm命令删除
[root@oldboyedu ~]# rm -f `find /opt/ -name "2.txt"`
[root@oldboyedu ~]# ll /opt/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:34 1.txt
-rw-r--r-- 1 root root  0 Jul 12 15:26 3.txt

案例3: 将结果交给mv命令
[root@oldboyedu ~]# ll /tmp/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:46 1.txt
[root@oldboyedu ~]# ll /opt/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:34 1.txt
-rw-r--r-- 1 root root  0 Jul 12 15:26 3.txt

[root@oldboyedu ~]# mv `find /opt/ -name "3.txt"` /tmp/
[root@oldboyedu ~]# ll /tmp/
total 4
-rw-r--r-- 1 root root 28 Jul 12 15:46 1.txt
-rw-r--r-- 1 root root  0 Jul 12 15:26 3.txt


将结果交给grep
[root@oldboyedu ~]# find /opt/ -type f|xargs grep 'www.cangjie.com'
/opt/code.txt:www.cangjie.com
/opt/2.txt:www.cangjie.com
/opt/3.txt:www.cangjie.com

小结2

小结:
三种语法:
1.使用xargs
find /opt/ -name "1.txt"|xargs rm   # 删除
find /opt/ -name "1.txt"|xargs -i cp {} /tmp # 复制
find /opt/ -name "1.txt"|xargs ls -l
2.使用exec
find /opt/ -name "1.txt" -exec rm {} \; # 删除
find /opt/ -name "1.txt" -exec cp {} /tmp \; 复制
find /opt/ -name "1.txt" -exec ls -l {} \; 查看详细信息
3.使用反引号或者$()
rm -rf `find /opt/ -name "1.txt"`
cp `find /opt/ -name "1.txt"` /tmp
ll `find /opt/ -name "1.txt"`

特殊符号

命令的分隔

# 1. 分号 ; 不管前面的命令执行成功或失败 都会继续往后执行(理解为前后分开)
[root@oldboyedu opt]# mkdir 1;echo oldboy;touch test.txt;cd 1
oldboy
[root@oldboyedu 1]# ll
total 0
[root@oldboyedu 1]# ll ../
total 0
drwxr-xr-x 2 root root 6 Jul 12 16:21 1
-rw-r--r-- 1 root root 0 Jul 12 16:21 test.txt

[root@oldboyedu opt]# mkdi 1;ech oldboy;touch test.txt
-bash: mkdi: command not found
-bash: ech: command not found
[root@oldboyedu opt]# ll
total 0
-rw-r--r-- 1 root root 0 Jul 12 16:22 test.txt

# 2.&&  只有前面的命令执行成功 才会继续往后执行
[root@oldboyedu opt]# mkdir 1 && cd 1
[root@oldboyedu 1]# 

[root@oldboyedu opt]# mkdi 1 && touch test.txt
-bash: mkdi: command not found
[root@oldboyedu opt]# ll
total 0

# 3.||  只有前面的命令执行失败 才会继续往后执行
[root@oldboyedu opt]# mkdir 1 || cd 1
[root@oldboyedu opt]# ll
total 0
drwxr-xr-x 2 root root 6 Jul 12 16:26 1
[root@oldboyedu opt]#  结果没有切换到1目录

[root@oldboyedu opt]# ll
total 0
cd失败 执行创建动作
[root@oldboyedu opt]# cd 1 || mkdir 1
-bash: cd: 1: No such file or directory
[root@oldboyedu opt]# ll
total 0
drwxr-xr-x 2 root root 6 Jul 12 16:26 1


[root@oldboyedu ~]# ping -c1 -W1 www.baidu.com &>/dev/null && echo ok
ok
[root@oldboyedu ~]# ping -c1 -W1 www.baiduaaaaa.com &>/dev/null && echo ok
[root@oldboyedu ~]# ping -c1 -W1 www.baiduaaaaa.com &>/dev/null && echo ok || echo errorerror
[root@oldboyedu ~]# ping -c1 -W1 www.baiduaaaaa.com &>/dev/null || echo error
error
[root@oldboyedu ~]# ping -c1 -W1 www.baiduaaaaa.com &>/dev/null || echo error && echo okerror
ok
[root@oldboyedu ~]# ping -c1 -W1 www.baiduaaaaa.com &>/dev/null || echo error || echo ok 
error

; 命令的分隔符 不管前面的命令成功或者失败 都会继续执行
&& 前面命令必须执行成功 才会往后执行
|| 前面命令必须执行失败 才会往后执行

tar-文件的打包压缩、解压缩

1.语法格式:
        # 打包压缩到当前目录
		tar zcvf 压缩文件名 目标文件
		# 打包压缩到指定目录
		tar zcvf /opt/压缩文件名 目标文件
          -z 使用gzip压缩
          -c 创建文件
          -v 显示过程  省略
          -f 指定文件
        
        # 解压到当前目录
        tar xf 文件名 
        # 解压到指定目录
        tar xf 文件名 -C 指定路径
        
          xf 解压文件
          -C 指定解压的目录
        
        # 查看压缩包文件
        tar tf 文件
          tf 查看压缩包中的文件
2.
(1)打包压缩        
案例1. 打包压缩单个文件(当前目录)
[root@oldboyedu opt]# tar zcvf test.tar.gz 1.txt
1.txt 
[root@oldboyedu opt]# ll
-rw-r--r-- 1 root root   0 Jul 12 16:47 1.txt
-rw-r--r-- 1 root root   0 Jul 12 16:47 oldboy.txt
-rw-r--r-- 1 root root 108 Jul 12 16:47 test.tar.gz

案例2. 打包多个文件
[root@oldboyedu opt]# tar zcvf test.tar.gz 1.txt oldboy.txt 
1.txt
oldboy.txt
[root@oldboyedu opt]# ll
total 4
drwxr-xr-x 3 root root  15 Jul 12 16:32 1
-rw-r--r-- 1 root root   0 Jul 12 16:47 1.txt
-rw-r--r-- 1 root root   0 Jul 12 16:47 oldboy.txt
-rw-r--r-- 1 root root 126 Jul 12 16:48 test.tar.gz

案例3.打包不同路径下的文件 /etc/hosts oldboy.txt
[root@oldboyedu opt]# tar zcvf test.tar.gz /etc/hosts oldboy.txt 
tar: Removing leading `/' from member names
/etc/hosts
oldboy.txt
[root@oldboyedu opt]# ll
total 4
drwxr-xr-x 3 root root  15 Jul 12 16:32 1
-rw-r--r-- 1 root root   0 Jul 12 16:47 1.txt
-rw-r--r-- 1 root root   0 Jul 12 16:47 oldboy.txt
-rw-r--r-- 1 root root 228 Jul 12 16:49 test.tar.gz

案例4: 打包目录下的内容最好到文件所在的目录下打包
cd /etc/
[root@oldboyedu opt]# cd /etc/
[root@oldboyedu etc]# tar zcvf test.tar.gz hosts passwd
hosts
passwd

案例5: 将打包后的文件放到指定目录下
[root@oldboyedu etc]# tar zcvf /opt/test.tar.gz hosts passwd
hosts
passwd
[root@oldboyedu etc]# ll /opt/
total 4
-rw-r--r-- 1 root root 679 Jul 12 16:57 test.tar.gz

(2)解压
案例6: 解压缩 将test.tar.gz 解压到当前的目录
[root@oldboyedu opt]# ll
total 4
-rw-r--r-- 1 root root 679 Jul 12 16:57 test.tar.gz
[root@oldboyedu opt]# tar xf test.tar.gz 
[root@oldboyedu opt]# ll
total 12
-rw-r--r-- 1 root root  206 Jul  6 17:37 hosts
-rw-r--r-- 1 root root 1056 Aug  8  2008 passwd

案例7: 解压test.tar.gz中的文件指定到/tmp目录
[root@oldboyedu opt]# rm -rf /tmp/*
第一种: 进入到/tmp目录使用路径解压
[root@oldboyedu opt]# ll
total 12
-rw-r--r-- 1 root root  206 Jul  6 17:37 hosts
-rw-r--r-- 1 root root 1056 Aug  8  2008 passwd
-rw-r--r-- 1 root root  679 Jul 12 16:57 test.tar.gz
[root@oldboyedu opt]# cd /tmp/
[root@oldboyedu tmp]# tar xf /opt/test.tar.gz 
[root@oldboyedu tmp]# ll
total 8
-rw-r--r-- 1 root root  206 Jul  6 17:37 hosts
-rw-r--r-- 1 root root 1056 Aug  8  2008 passwd
第二种方式: 使用参数指定解压的目录
[root@oldboyedu tmp]# rm -rf *
[root@oldboyedu tmp]# cd 
[root@oldboyedu ~]# tar xf /opt/test.tar.gz -C /tmp/
[root@oldboyedu ~]# ll /tmp/
total 8
-rw-r--r-- 1 root root  206 Jul  6 17:37 hosts
-rw-r--r-- 1 root root 1056 Aug  8  2008 passwd

(3)查看压缩包里面的文件
案例8: 查找压缩包里的文件
[root@oldboyedu opt]# tar tf test.tar.gz 
hosts
passwd

zip-压缩

1.语法结构:
	zip 【选项】filename.zip 目标文件

        -r 参数表示以递归方式压缩子目录下所有文件

2.案例
[root@oldboyedu opt]# zip test1.zip test1.txt         

unzip-解压缩

1.语法结构:
    # 解压到当前目录
	unzip filename.zip
	
	# 解压到指定目录
    unzip filename.zip -d 指定目录

2.案例
1)解压到当前目录
[root@oldboyedu opt]# unzip test.zip
2)解压到指定目录/tmp
[root@oldboyedu opt]# unzip test.zip -d /tmp/

03.知识点小结

1.find 重点!!!
find /opt/ -name "xxx"
find /opt/ -iname "xxx" 不区分大小写
find /opt/ -inum  23234 inode查找
find /opt/ -name "*.txt"
find /opt/ -type f  所有的文件
find /opt/ -type d  所有的目录
find /opt/ -type f -name "1.txt"
find /opt/ -size 10M 等于10M的文件  +10M 大于10M  -10M 小于10M
find /opt/ -type f -size +50M  是文件并且大于50M
find /opt/ -mtime +7 # 7天前 -7 7天内

三种方式:
find /opt/ -name "1.txt"|xargs rm
find /opt/ -name "1.txt"|xargs -i cp {} /tmp

find /opt -name "1.txt" -exec rm {} \;
find /opt -name "1.txt" -exec cp {} /tmp \;

rm -rf `find /opt -name "1.txt"`
mv `find /opt -name "1.txt"` /tmp/
cat `find /opt -name "1.txt"`

笔试题: 查找/data目录下7天前的文件并删除(查找到的所有文件压缩为test.tar.gz)
find /data -type f -mtime +7|xargs rm

特殊符号:
;
&&
||

打包压缩:
tar zcvf /opt/all.tar.gz hosts oldboy.txt /etc  # 压缩
tar xf /opt/all.tar.gz      #解压到当前目录
tar xf /opt/all.tar.gz -C /tmp/  # 解压到指定目录

下次内容: 文件的详细属性
		 通配符 正则表达式 三剑客 grep sed awk

ind /opt/ -iname “xxx” 不区分大小写
find /opt/ -inum 23234 inode查找
find /opt/ -name “*.txt”
find /opt/ -type f 所有的文件
find /opt/ -type d 所有的目录
find /opt/ -type f -name “1.txt”
find /opt/ -size 10M 等于10M的文件 +10M 大于10M -10M 小于10M
find /opt/ -type f -size +50M 是文件并且大于50M
find /opt/ -mtime +7 # 7天前 -7 7天内

三种方式:
find /opt/ -name “1.txt”|xargs rm
find /opt/ -name “1.txt”|xargs -i cp {} /tmp

find /opt -name “1.txt” -exec rm {} ;
find /opt -name “1.txt” -exec cp {} /tmp ;

rm -rf find /opt -name "1.txt"
mv find /opt -name "1.txt" /tmp/
cat find /opt -name "1.txt"

笔试题: 查找/data目录下7天前的文件并删除(查找到的所有文件压缩为test.tar.gz)
find /data -type f -mtime +7|xargs rm

特殊符号:
;
&&
||

打包压缩:
tar zcvf /opt/all.tar.gz hosts oldboy.txt /etc # 压缩
tar xf /opt/all.tar.gz #解压到当前目录
tar xf /opt/all.tar.gz -C /tmp/ # 解压到指定目录

下次内容: 文件的详细属性
通配符 正则表达式 三剑客 grep sed awk


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值