find指令
主要进行文件搜索
2.基本语法
find 【文件路径】【选项 选项的值】
-name*
-type f|d
常见的选项
-name 根据文件的名称搜索文件,支持通配符*(*文件:以文件结尾;文件*以文件开头)
在linux系统中,要查找的文件名不清晰,可以使用“文件名+*”搜索
-type f 代表普通文件,d代表目录
找到gym文件
[root@gym ~]# find / -name "gym"
/var/spool/mail/gym
/home/gym
[root@gym ~]# find / -name "gym" -type f
/var/spool/mail/gym
文件的时间概念
window中的时间
1.创建时间
2.修改时间
3.访问时间
[root@gym ~]# stat /opt/gym.abc
文件:"/opt/gym.abc"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:19229166 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2024-07-15 09:28:29.164925319 +0800
最近更改:2024-07-15 09:28:29.164925319 +0800
最近改动:2024-07-15 09:28:29.164925319 +0800
创建时间:-
创建文件,并且配置文件的修改时间
语法:touch -m -d 日期时间格式 文件名称
[root@gym ~]# touch /opt/b.txt -m -d "2024-7-14 00:00"
[root@gym ~]# ls -l /opt/
-rw-r--r--. 1 root root 0 7月 15 09:33 a.txt
-rw-r--r--. 1 root root 0 7月 14 00:00 b.txt
touch创建文件,没有文件就新建,有文件就修改
touch 文件名称 -m -d “日期时间格式”
[root@gym ~]# touch /opt/f.txt
[root@gym ~]# ls -l /opt/
-rw-r--r--. 1 root root 0 7月 15 09:38 f.txt
[root@gym ~]# touch /opt/f.txt -m -d "2024-7-10 "00:00""
[root@gym ~]# ls -l /opt/
-rw-r--r--. 1 root root 0 7月 10 00:00 f.txt
通过文件的最后修改时间搜索文件
语法:find 文件路径 -mtime +day/-days
使用find按时间搜索,找到就得文件删掉
[root@gym ~]# find /opt/ -mtime +3 查找三天以外
/opt/e.txt
/opt/f.txt
[root@gym ~]# find /opt/ -mtime -3 查找三天以内
/opt/
/opt/gym.abc
/opt/a.txt
/opt/b.txt
/opt/c.txt
查找并删除
永久删除三天前文件
[root@gym ~]# find /opt/ -mtime +3|xargs rm -rf
find -exec对查找到的结果进行修改
[root@gym ~]# find /opt/-mtime +3 -exec rm -rf {} \;
[root@web1 ~]# touch /opt/a.txt
[root@web1 ~]# ls -l > /opt/a.txt //覆盖
[root@web1 ~]# vim /opt/a.txt
[root@web1 ~]# ls -l >> /opt/a.txt //追加
[root@web1 ~]# vim /opt/a.txt
根据文件大小size进行搜索
find 路径 -size 文件大小 [常用单位 k M G]
size值 搜索等于size的文件
-size值 【0,size值)
+size值 (size值,正无穷)
扩展命令 dd
使用dd创建扩展命令
生成指定大小的测试文件
语法
dd if=/dev/zero of=文件名称 bs=1M count=1
if表示输入文件
of表示输出文件
bs代表字节为单位的块大小
count代表被复制的块
其中/dev/zore是一个字符设备,会不断地返回0字节的文件
搜索文件>100M
[root@gym ~]# find / -size +100M
搜索文件<100 M
[root@gym ~]# find / -size -100M
清空opt目录下所有文件
[root@gym ~]# rm -rf /opt/*
[root@gym ~]# ls /opt/
创建1M的文件
[root@gym ~]# dd if=/dev/zore of=/opt/a.txt bs=1M count=1
dd: 打开"/dev/zore" 失败: 没有那个文件或目录
[root@gym ~]# dd if=/dev/zero of=/opt/a.txt bs=1M count=1
记录了1+0 的读入
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.00660752 秒,159 MB/秒
tree指令
创建文件列表,将文件名以树的形式展示,让我们的目录更加有层级
[root@gym ~]# tree /etc/
scp上传文件
下载 把数据从远程主机保存到本地主机
上传 把本地文件保存到远程主机
/usr/bin/echo
语法 scp [选项] 本地主机资源路径 {远程主机}用户名@主机ip:放置路径
[root@web1 ~]# scp /opt/a.txt root@192.168.1.20:/root //向另一台主机传输文件
计划任务
查看现有的计划任务
crontab -l
编写计划任务
[root@gym ~]# crontab -e
30 * * * * /usr/bin/echo "我是回声" >> /root/echo.txt 只有30的时候才执行
*/1 * * * * /usr/bin/echo "我是每分钟都执行的牛皮糖" >> /root/minute.txt 每分钟执行
no crontab for root - using an empty one
crontab: installing new crontab
[root@gym ~]# cat minute.txt
我是每分钟都执行的牛皮糖
我是每分钟都执行的牛皮糖
[root@gym ~]# cat echo.txt
我是回声
[root@gym ~]# tar -zcvf /tmp/etc.tar.gz /etc/ 将etc目录下的所有文件做成压缩包放到tmp目录下
[root@gym ~]# crontab -e
*/2 * * * * /usr/bin/tar -zcvf /tmp/etc.tar.gz /etc/ 每两分钟,将etc目录下的所有文件做成压缩包放到tmp目录下
研究时间戳
[root@gym ~]# crontab -e
*/1 * * * * /usr/bin/tar -zcvf /tmp/etc_$(date "+\%Y\%m\%d\%H\%M\%S").tar.gz /etc/
[root@gym ~]# ls /tmp/
etc_20240715145901.tar.gz
etc_20240715150002.tar.gz