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