Linux系统强大的查找命令find用法
2021-02-28 22:55
776 查看
Linux系统下find是最常用的指令,find命令在目录结构中搜索文件,并执行指定的操作,掌握它的形式与用法对运维工作很有用处。
find常用参数
-exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和\;之间的空格。 -name filename 查找名为filename的文件 -mtime -n +n 按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -atime -n +n 按文件访问时间来查 -ctime -n +n 按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -type b/d/c/p/l/f 查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c] 查长度为n块[或n字节]的文件 -mindepth -maxdepth 选项允许您指定您希望 find 搜索深入到目录树的哪一级别
案例分享
今天在编写MySQL数据库备份脚本时,就遇到一个难题,要清理14天前的备份文件。大家可能觉得这不是很简单的事情吗,用find找出,然后加xargs rm -rf就可以自动删除了。
可事情不是这么简单,下面我来给大家介绍一下需求,我就想找到/home/mysql/backup/physical目下,14天的目录,并删除。
[mysql@localhost physical]$ pwd /home/mysql/backup/physical [mysql@localhost physical]$ ls -l total 0 drwxr-x--- 3 mysql mysql 31 Mar 23 02:30 202003230230 drwxr-x--- 3 mysql mysql 31 Mar 23 02:33 202003230233
用普通的find参数,试试效果
[mysql@localhost physical]$ find /home/mysql/backup/physical -type d -mtime +14 /home/mysql/backup/physical /home/mysql/backup/physical/202003230230 /home/mysql/backup/physical/202003230230/base_202003230230 /home/mysql/backup/physical/202003230230/base_202003230230/mysql /home/mysql/backup/physical/202003230230/base_202003230230/sys /home/mysql/backup/physical/202003230230/base_202003230230/testdb /home/mysql/backup/physical/202003230230/base_202003230230/performance_schema /home/mysql/backup/physical/202003230233 /home/mysql/backup/physical/202003230233/base_202003230233 /home/mysql/backup/physical/202003230233/base_202003230233/mysql /home/mysql/backup/physical/202003230233/base_202003230233/sys /home/mysql/backup/physical/202003230233/base_202003230233/testdb /home/mysql/backup/physical/202003230233/base_202003230233/performance_schema
可是我知晓找到下面2个目录,并不需要找到下级目录,很明显,find找的目录多了。
[mysql@localhost physical]$ ll total 0 drwxr-x--- 3 mysql mysql 31 Mar 23 02:30 202003230230 drwxr-x--- 3 mysql mysql 31 Mar 23 02:33 202003230233
怎么办,我用man find看用法时,发现有2个参数-mindepth -maxdepth,可以控制查询的层级,对于解决这个需求,非常的有用,来试试效果
[mysql@localhost physical]$ find /home/mysql/backup/physical -mindepth 1 -maxdepth 1 -type d -mtime +14 /home/mysql/backup/physical/202003230230 /home/mysql/backup/physical/202003230233
到这里,已经非常完美的解决了我的需求,在加上xargs rm -rf就可以了
[mysql@localhost physical]$ find /home/mysql/backup/physical -mindepth 1 -maxdepth 1 -type d -mtime +14| xargs rm -rf
这个技能你学到了吧。
相关文章推荐
- Linux系统强大的查找命令find用法
- linux下使用find命令根据系统时间查找文件用法
- Linux基础教程 linux下使用find命令根据系统时间查找文件用法
- linux下使用find命令根据系统时间查找文件用法
- findfs命令_Linux findfs 命令用法详解:标签或UUID查找文件系统
- linux下find命令根据系统时间查找文件用法
- linux下find命令根据系统时间查找文件用法
- Linux系统文件查找命令find的基本使用及其高级用法
- linux下使用find命令根据系统时间查找文件用法
- Linux基础教程 linux下使用find命令根据系统时间查找文件用法
- Linux基础教程 linux下使用find命令根据系统时间查找文件用法
- Linux基础教程 linux下使用find命令根据系统时间查找文件用法
- linux中常用的文件查找命令--find命令的用法
- Linux 基础学习 文件查找命令 find 部分用法
- linux下find查找命令用法
- linux下find查找命令用法
- linux下find查找命令用法
- linux下find查找命令用法
- 转载 linux下find查找命令用法
- linux下find查找命令用法