1.概述
find命令:查找文件或者目录的命令。
2.基础使用
find [文件夹路径(查找范围,越精细越好,否则性能消耗)] [选项参数]
参数:
-type:根据文件类型f:文件d:文件夹
-name:根据文件名-perm:根据文件权限-user:根据文件所属用户-mtime:根据修改时间来查找-n:表示更改时间距离现在n天以内+n:表示更改时间距离现在n天以前
# 查找/var/log目录下 所有以 .log结尾的 文件find /var/log -type f -name "*.log"# 查找/var/log目录下 所有的文件夹find /var/log -type d# 查找/var/log目录下 权限为600 的 所有以 .log结尾的 文件find /var/log -perm 600 -type f -name "*.log"# 查找/var/log目录下 XD用户的 所有文件find /var/log -user XD# 查找/var/log目录下 2天内 修改的 所有以 .log结尾的 文件find /var/log -mtime -2 -name "*.log"# 查找/var/log目录下 2天前 修改的 所有以 .log结尾的 文件find /var/log -mtime +2 -name "*.log"
3.高级使用
查找出结果后,再全部进行处理。[查询] -exec [其他命令+{}参数接收] \;
# 查找出结果,然后统计出每个文件内行数find /var/log -type f -name "*.log" -exec wc -l {} \;# ; #可以执行多条命令# \ #转义符,转义;使得这条命令结束# {} #把find命令匹配到的每一次结果传递给{}# -exec #执行# 以上过程,可以理解为函数调用# 查找出结果,并拷贝到其他目录下去find /var/log -type f -name "*.log" -exec cp -a {} /home/test \;# 根据文件的变更时间来查找;-n表示更改时间距离现在n天以内;+n表示更改时间距离现在n天以前find /var/log -mtime -2 -name "*.log" -exec ls -lrt {} \;find /var/log -mtime +2 -name "*.log" -exec ls -lrt {} \;
