一,find
find查找文件:
-name 根据文件名称搜索文件,支持通配符
-type f代表普通文件 d代表目录
格式:find 文件路径
[root@one01 ~]# touch /opt/zbr
[root@one01 ~]# find / -name "zbr"
/opt/zbr
通配符:
在linux 系统中,如果要查找的⽂件的名称不清晰,可以使⽤部分⽂件名+*搜索
包含“zb”的:
[root@one01 ~]# find / -name "*zb*"
/usr/lib/firmware/mts_mt9234zba.fw
/usr/share/locale/zbl
/usr/share/mime/application/x-nzb.xml
/usr/share/mime/image/vnd.zbrush.pcx.xml
/opt/zbr
[root@one01 ~]# find /opt/ -name "*zb*"
/opt/zbr
以“conf”为结尾:
[root@one01 ~]# ls -l /etc/*.conf
-rw-r--r--. 1 root root 55 4月 11 2018 /etc/asound.conf
-rw-r--r--. 1 root root 1108 4月 13 2018 /etc/chrony.conf
[root@two01 ~]# find /etc/ -name "*.conf" -type f
/etc/resolv.conf
/etc/libaudit.conf
以an为开头:
[root@one01 ~]#ls -l /etc/an*
-rw-------. 1 root root 541 4月 11 2018 /etc/anacrontab
[root@two01 ~]# find /etc/ -name "an*" -type f
/etc/sysconfig/anaconda
/etc/anacrontab
/etc/libreport/workflows.d/anaconda_event.conf
二,Window中的时间
创建,修改,访问时间
stat查看文件时间信息:
[root@one01 ~]# stat /opt/zbr
文件:"/opt/zbr"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:34723422 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2024-07-15 09:09:10.474719595 +0800
最近更改:2024-07-15 09:09:10.474719595 +0800
最近改动:2024-07-15 09:09:10.474719595 +0800
创建时间:-
案例创建⽂件,并配置⽂件的修改时间
格式:touch -m -d ⽇期时间格式 ⽂件名称
[root@one01 ~]# touch /opt/a.txt
创建的时候修改日期,touch 文件名 -m -d “日期时间格式”
[root@one01 ~]# touch /opt/b.txt -m -d "2024-7-14 00:00"
[root@one01 ~]# touch /opt/d.txt -m -d "2024-7-12 00:00"
[root@one01 ~]# ls -l /opt/
-rw-r--r--. 1 root root 0 7月 15 09:32 a.txt
-rw-r--r--. 1 root root 0 7月 14 00:00 b.txt
使用xargs将查询结果交给rm删除:
find /opt/ -name "*.txt" -type f -mtime +3 xargs rm -rf //删掉三天前以.txt为结尾的文件
通过⽂件的最后修改时间搜索⽂件
格式:find ⽂件路径 -mtime +days/-days
-mtime 根据⽂件最后修改时间搜索⽂件
+号 搜索⼏天之前的⽂件信息
-号 搜索⼏天之内的⽂件信息
查找三天以前的⽂件
[root@localhost opt]# find /opt/ -name "*.txt" -type f -mtime +3 /opt/e.txt
使⽤-exec ⽂件调⽤rm函数; {}表示前⾯find查到的内容 \;表示标识符
这⾥在{}后⾯没有打空格报错了,在{}后应该打空格 :
[root@localhost opt]# find /opt/ -name "*.txt" -type f -mtime +3 -exec rm - rf {}\;
find: 遗漏“-exec”的参数
[root@localhost opt]# find /opt/ -name "*.txt" -type f -mtime +3 -exec rm - rf {} \;
总⽤量 0
-rw-r--r--. 1 root root 0 7⽉ 14 13:54 a.txt
-rw-r--r--. 1 root root 0 7⽉ 13 00:00 b.txt
使用find按时间搜索,找到旧的文件删掉
[root@one01 ~]# find /opt/ -mtime +3 //三天前的
/opt/d.txt
[root@one01 ~]# find /opt/ -mtime -3
/opt/
/opt/zbr
/opt/a.txt
/opt/b.txt
/opt/c.txt
size用法:
根据文件size大小搜索文件
格式:find 路径 -size 文件大小[常用单位kMG]
+size 大于这个值的
-size 小于这个值的
扩展命令dd:
格式:dd if=/dev/zero of=⽂件名称 bs=1M count=1
if表示输⼊⽂件
of表示输出⽂件
bs代表字节为单位的块⼤⼩
count代表被复制的块
其中/dev/zore是⼀个字符设备,会不断地返回0字节的⽂件
[root@two01 ~]# dd if=/dev/zero of=/opt/aaaa.mp4 bs=5M count=1 //创建一个5M的文件
记录了1+0 的读入
记录了1+0 的写出
5242880字节(5.2 MB)已复制,0.0236586 秒,222 MB/秒
[root@two01 ~]# ls /opt/
aaaa.mp4 aaa.txt d1
使⽤scp下载⽂件和⽬录
语法 scp [选项] ⽤户名@linux主机地址:/资源路径 linux本地⽂件路径
下载,把数据从远程主机保存到本地主机
上传,把本地文件保存到远程主机
[root@one01 ~]# scp root@192.168.195.11:/opt/a.txt /opt/
//把195.11机子上opt目录下的a.txt文件上传到本机的opt目录下
传到另一台机子上
[root@one01 ~]# scp -r /opt/d0/a.txt root@192.168.195.12:/opt/d1
//把本机上opt目录d0下的a.txt文件上传到195.12中opt/d1目录下
计划任务
格式:crontab 选项
-l list查看当前用户的计划任务信息
-e edit编写计划任务
编写任务计划书:crontab 详细路径
[root@two01 ~]# crontab -e //编写
no crontab for root - using an empty one
crontab: installing new crontab
*****五个星号对应“分时日[0和7都表示星期日]月钟”
[root@two01 ~]# crontab -e
30 * * * * /usr/bin/echo "我是三十分钟执行的" >> /root/echo.txt
*/1 * * * * /usr/bin/echo "我是每分钟都执行的" >> /root/min.txt
[root@two01 ~]# cat /root/min.txt
我是每分钟都执行的
[root@two01 ~]# cat /root/echo.txt
我是三十分钟执行的
压缩打包:把etc目录下的东西打包载/tmp/etc.tar.gz下
[root@two01 ~]# tar -zcvf /tmp/etc.tar.gz /etc
[root@two01 ~]# ls /tmp
etc.tar.gz
[root@two01 ~]# crontab -l
*/2 * * * * /usr/bin/tar -zcvf /tmp/etc.tar.gz /etc/ //每两分钟打包一次
[root@two01 ~]# rm -rf /tmp/etc.tar.gz
/var/spool/mail/root有新文件
//(会显示有新邮件,这个没看暂时)后面ls /tmp的时候有文件etc.tar.gz
[root@two01 ~]# crontab -l //在脚本中出现%得用转义符\
*/1 * * * * /usr/bin/tar -zcvf /tmp/etc_$(date "+\%Y \%m \%d \%h").tar.gz /etc/ //每分钟都打印一个包 //创建带有相关日期的文件
[root@two01 ~]# ls /tmp/
etc_202407157月.tar.gz