一、基本概念
1、find命令应用
主要进行文件搜索
2. 基本语法
find [ 文件路径 ] [ 选项 选项的值 ]
-name *
-type f|d
常见的选项
-name 根据文件的名称搜索文件,支持通配符 *
-type f 代表普通文件, d 代表目录
2、stat命令
语法 touch -m -d 日期时间格式 文件名称
60 touch /opt/c.txt -m -d "2024-7-11 00:00"
61 touch /opt/d.txt -m -d "2024-7-12 00:00"
62 touch /opt/e.txt -m -d "2024-7-13 00:00"
文件不存在就创建并修改时间
文件存在只配置最后修改时间
搜索时间
find 文件路径 -mtime +days/-days
-mtime 根据文件最后修改时间搜索文件
+ 号 搜索几天之前的文件信息
- 号 搜索几天之内 的文件信息
68 find /opt/ -mtime +3
69 find /opt/ -mtime -3
删除的方法:
76 find /opt/ -mtime +3 | xargs rm -rf
80 find /opt/ -mtime +3 -exec rm -rf {} \;
根据文件size大小搜索文件
find 路径 -size 文件大小 [ 常用单位 k M G]
size 值 搜索等于 size 的文件
-size值 【 0 , size 值 )
+size 值 ( size 值,正无穷)
3、扩展命令 dd
使用dd创建扩展命令
生成指定大小的测试文件
语法 dd if=/dev/zero of=文件名称 bs=1M count=1
if 表示输入文件
of 表示输出文件
bs 代表字节为单位的块大小
count 代表被复制的块
其中 /dev/zore 是一个字符设备,会不断地返回 0 字节的文件
二、练习
- 使⽤ls查看/etc/⽬录下所有的⽂件信息
[root@aaa ~]# ls -l /etc/
2.使⽤ls查看/etc/⽬录下名包含“a”字⺟的⽂件或者⽬录信息
[root@aaa ~]# ls -l /etc/*a*/
3.使⽤ls查看/etc/⽬录下以".conf"结尾的⽂件信息
[root@aaa ~]# ls -l /etc/*.conf
4.使⽤ls查看/etc/⽬录中以"y"字⺟开头的⽂件信息
[root@aaa ~]# ls -l /etc/y*/
5.find查找/var/⽬录中以“.log”⽂件
[root@aaa ~]# find /var/log -name "*.log" -type f
6.在opt⽬录下创建test⽬录
[root@aaa ~]# mkdir /opt/test/
[root@aaa ~]# ls -l /opt/
7.在test⽬录中创建abc.txt,def.txt.ghi.txt,xxx.txt.yyy.txt五个⽂件
[root@aaa ~]# touch /opt/test/abc.txt
[root@aaa ~]# touch /opt/test/def.txt
[root@aaa ~]# touch /opt/test/ghi.txt
[root@aaa ~]# touch /opt/test/xxx.txt
[root@aaa ~]# touch /opt/test/yyy.txt
[root@aaa ~]# ls -l /opt/test/
8.修改以上5个⽂件的最后修改时间分别为15,14,13,12,11,10⽇
[root@aaa ~]# touch /opt/test/abc.txt -d "2024-7-15"
[root@aaa ~]# touch /opt/test/def.txt -d "2024-7-14"
[root@aaa ~]# touch /opt/test/ghi.txt -d "2024-7-13"
[root@aaa ~]# touch /opt/test/xxx.txt -d "2024-7-12"
[root@aaa ~]# touch /opt/test/yyy.txt -d "2024-7-11"
[root@aaa ~]# ls -l /opt/test/
9.在test⽬录下创建a⽬录
[root@aaa ~]# mkdir /opt/test/a/
[root@aaa ~]# ls -l /opt/test/
10.将以上5个⽂件复制⼀份到a⽬录中
[root@aaa ~]# cp -i /opt/test/*.txt /opt/test/a/
[root@aaa ~]# ls -l /opt/test/a/
11.将a⽬录⽂件做成bak.tar.gz⽂件保存到家⽬录中
[root@aaa ~]# tar -czvf bak.tar.gz /opt/test/a
12.使⽤find删除test⽬录下3天前的⽂件
[root@aaa ~]# find /opt/test -mtime +3 -exec rm -rf {} \;
[root@aaa ~]# ls -l /opt/test
13.find删除opt⽬录下3天内的⽂件
[root@aaa ~]# find /opt -mtime +3 -exec rm -rf {} \;
[root@aaa ~]# ls -l /opt
14.find删除正好第三天的⽂件
[root@aaa ~]# find /opt/test -mtime 3 -exec rm -rf {} \;
[root@aaa ~]# ls -l /opt/test
15.将/opt/test/a⽬录中的⽂件复制i⼀份到/opt/test/⽬录下
[root@aaa ~]# cp -i /opt/test/a/*.txt /opt/test/
cp:是否覆盖"/opt/test/abc.txt"? y
cp:是否覆盖"/opt/test/def.txt"? y
[root@aaa ~]# ls -l /opt/test/
16.创建⽬录/opt/test0
[root@aaa ~]# mkdir /opt/test0
[root@aaa ~]# ls /opt
17.在/opt/test0/⽬录中创建三个⽂件 a.mp4(5M),b.mp4(20M),c.mp4(80M)
[root@aaa ~]# dd if=/dev/zero of=/opt/test0/a.mp4 bs=5M count=1
记录了1+0 的读入
记录了1+0 的写出
5242880字节(5.2 MB)已复制,0.0575525 秒,91.1 MB/秒
[root@aaa ~]# dd if=/dev/zero of=/opt/test0/b.mp4 bs=20M count=1
记录了1+0 的读入
记录了1+0 的写出
20971520字节(21 MB)已复制,0.207271 秒,101 MB/秒
[root@aaa ~]# dd if=/dev/zero of=/opt/test0/c.mp4 bs=80M count=1
记录了1+0 的读入
记录了1+0 的写出
83886080字节(84 MB)已复制,0.805766 秒,104 MB/秒
[root@aaa ~]# ls -l /opt/test0
18.创建⽬录/opt/test0/b/
[root@aaa ~]# mkdir /opt/test0/b/
[root@aaa ~]# ls /opt/test0
19.将/op t/test0/中的⽂件复制⼀份/opt/test0/b/⽬录中
[root@aaa ~]# cp -r /opt/test0/*.mp4 /opt/test0/b/
[root@aaa ~]# ls /opt/test0/b
20.find查询/opt/test0/⽬录中⽂件⼤于20M的,并删除
[root@aaa ~]# find /opt/test0/ -size +20M | xargs rm -rf
[root@aaa ~]# ls -l /opt/test0
21.find查询/opt/test0/⽬录中⽂件⼩于20M的⽂件并删除
[root@aaa ~]# find /opt/test/ -size -20M -exec rm -rf {} \;
[root@aaa ~]# ls -l /opt/test0
22.find查找/opt/test0/⽬录中⽂件size为20M的⽂件并删除
[root@aaa ~]# find /opt/test/ -size 20M -exec rm -rf {} \;
23./opt/test0/b中的⽂件复制⼀份到/opt/test0中
[root@aaa ~]# cp -r /opt/test0/b /opt/test0
24.打开新的虚拟主机
25.将家⽬录中的bak.tar.gz⽂件上传到新主机的/opt⽬录中
[root@aaa ~]# scp /home/bak.tar.gz root@192.168.1.11:/opt/
26.将新主机的/e tc/skel/⽬录下载到 当前主机的/opt⽬录中
[root@aaa ~]# scp root@192.168.1.11:/etc/skel/ /opt/
27.设置计划任务,每周3将/e tc/yum.repos.d/⽬录下的.repo⽂件压缩保存到tmp,在⽂件 名中添加时间戳
[root@aaa ~]# (crontab -l 2>/dev/null; echo "0 0 * * 3 /bin/bash -c 'tar -czvf /tmp/yum_repos_$(date +\%Y\%m\%d-\%H\%M\%S).tar.gz /etc/yum.repos.d/*.repo'") | crontab -