一.find
1.find命令的作用
主要进行文件搜索
2.基本语法
find [文件路径] [选项 选项的值]
-name *
-type f|d
3.常见的选项
-name 根据文件的名称搜索文件,支持通配符*
-type f代表普通文件,d代表目录
例如:
[root@diyi ~]# touch /opt/zhangmin.abc
[root@diyi ~]# find /opt/ -name "zhangmin*" -type f
/opt/zhangmin.abc
[root@diyi ~]# find /opt/ -name "*zhangmin*" -type f
/opt/zhangmin.abc
二.Stat
按时间进行查找:
- 文件的创建时间
- 修改时间
- 访问时间
使用stat获取文件的时间信息
[root@diyi ~]# stat /opt/zhangmin.abc //查看文件信息
修改或者创建文件,并设置最后修改时间
[root@diyi ~]# touch /opt/c.txt -m -d "2024-7-13 00:00"
[root@diyi ~]# touch /opt/d.txt -m -d "2024-7-12 00:00"
[root@diyi ~]# touch /opt/e.txt -m -d "2024-7-11 00:00"
touch 文件路径 -m -d “时间”(修改时间)
三.mtime
按日期搜索:
+搜索三天之前的文件包括今天
-搜索三天之内的文件包括今天
[root@diyi ~]# find /opt/ -mtime +3
[root@diyi ~]# find /opt/ -mtime -3
四.exec
exec对find查到的结果进行修改:
删除
[root@diyi ~]# find /opt/ -mtime +3|xargs rm -rf
[root@diyi ~]# find /opt/ -mtime +3 -exec rm -rf {} \;
五.size
根据文件大小(size)搜索:
格式:
find 路径 -size 文件大小 [常用单位 k M G]
size值 搜索等于size的文件
-size值 (0,size值)
+size值 (size值,正无穷)
[root@diyi ~]# find / -size +100M //搜素大于100M的文件
扩展命令 dd
使用dd创建扩展命令
创建指定大小的测试文件
语法:
dd if=/dev/zero of=文件名称 bs=1M count=1
if表示输入文件
of表示输出文件
bs代表字节为单位的块大小
count代表被复制的块
其中/dev/zore是一个字符设备,会不断地返回0字节的文件
创建1M的文件
[root@diyi ~]# dd if=/dev/zero of =/opt/a.txt bs=1M count=1
[root@diyi ~]# dd if=/dev/zero of =/opt/b.txt bs=5M count=1
[root@diyi ~]# dd if=/dev/zero of =/opt/c.txt bs=11M count=1
查找大于5M的文件:
[root@diyi ~]# find /opt/ -size +5M
- tree(将文件结构以树状显示)
tree -l 数字 //显示数字级
- scp
下载文件
格式:
scp [选项] 用户名@linux主机地址:/资源路径 linux本地文件路径
[root@localhost ~]# scp root@192.168.2.11:/opt/a.txt /opt/(远程主机的用户和地址,被下载的文件 存放到本机/opt下)
在远程主机上创建一个目录,将这些文件放到该目录下:
下载目录
[root@localhost ~]# scp -r root@192.168.2.11:/opt/d0/ /opt/(加-r表示递归,不仅复制文件,还可以复制当前目录下的文件和目录等)
上传文件(把本机文件上传保存到远程主机):
格式:
scp [选项] 本地主机资源路径 {远程主机}用户名@主机ip:放置路
[root@localhost ~]# scp /opt/d0/a.txt root@192.168.2.11:/opt/ //本机/opt/do/a.txt上传到192.168.2.11主机的/opt下
上传目录:
[root@localhost ~]# scp -r /opt/d0/ root@192.168.2.11:/opt/
- 计划任务
crontab [选项]
-l list 查看当前用户的计划任务信息
-e edit编写计划任务
1.查看系统是否存在计划任务
[root@localhost ~]# crontab -l //刚开始没有计划
每分钟自动将/opt/中的文件名写到root目录下的list中
[root@localhost ~]# crontab -e //编写计划任务
[root@localhost ~]# crontab -l
*/1 * * * * (分 时 日 月 周)/usr/bin/ls /opt >> /root/list //每一分钟执行一次
30 * * * * /usr/bin/echo "hhhhhh" >> /root/kk.txt //每小时的30分执行一次
[root@localhost ~]# ls
anaconda-ks.cfg list
[root@localhost ~]# vi list
[root@localhost ~]# dd if=/dev/zero of=/opt/hh.txt bs=100M count=1 //在/opt/下创建hh.txt文件为100M
[root@localhost ~]# vi list //等一分钟查看
[root@diyi ~]# tar -zcvf /tmp/etc.tar.gz /etc/
//将/etc/里面所有的文件每隔2分钟打包放到/tmp/里面
[root@localhost ~]# crontab -e
*/2 * * * * /usr/bin/tar -zcvf /tmp/etc.tar.gz /etc/
[root@localhost ~]# crontab -l
时间戳
[root@diyi ~]# date "+%Y(年)%m(月)%d(日)%H(时)%M(分)%S(秒)"
[root@localhost ~]# crontab -e
//添加时间戳
*/1 * * * * /usr/bin/tar -zcvf /tmp/etc_$(data "+\%Y\%M\%D\%H\%M\%S\").tar.gz /etc/