Linux中的find
命令是一个功能强大的文件搜索工具,适用于递归查找文件和目录,并支持多种条件筛选。以下是其核心用法及扩展技巧:
一、基础用法
-
按文件名查找
find /路径 -name "文件名"
示例:查找
/home/shishun
目录下所有.py
文件find /home/shishun -name "*.py"
-
按文件类型查找
-
普通文件:
-type f
-
目录:
-type d
-
符号链接:
-type l
示例:查找
/usr/local
目录下所有目录find /usr/local -type d
-
二、进阶用法
-
按时间戳查找
-
访问时间(atime):
-atime +n
(n天后修改的文件) -
修改时间(mtime):
-mtime +n
(n天前修改的文件)
示例:查找7天前修改的文件
find / -atime +7
-
-
按文件大小查找
-
大于n:
-size +n
(如+5M) -
小于n:
-size -n
示例:查找大于5MB的文件
find / -size +5M
-
-
按权限查找
- 示例:查找权限为755的文件
find / -perm 755
三、组合使用与扩展
-
正则表达式匹配
find /路径 -type f -regex "正则表达式"
示例:查找所有
.pdf
文件find ./yang/books -type f -regex ".*\.pdf"
-
执行命令
- 示例:删除所有
.txt
文件
find /路径 -name "*.txt" -exec rm -rf {} \;
- 示例:删除所有
四、注意事项
-
路径范围 :默认从根目录
/
开始,可通过.
指定当前目录。 -
权限问题 :部分操作需
sudo
权限,如删除文件。 -
效率优化 :使用
-type f
限制搜索范围,避免误删目录。
通过以上方法,find
命令可满足日常文件管理需求,建议结合实际场景灵活运用。