IT技术博客大学习 共学习 共进步

linux下搜索find命令详解

the5fire的技术博客 2013-01-16 14:10:46 浏览 9,224 次

最近我们团队开展了一系列的15分钟linux培训计划,今天给大家分享了下find命令的使用,不过内容有点少了。这里把能用到的命令都列一下,也方便以后查找使用。

开始吧。

find是linux下很强大的搜索工具,但速度慢且很费硬盘。但不管怎么说,此命令的使用频率依然很高。

使用选项:
find [路径] <表达式> [操作]

1、name选项,按名称查找
查找当前目录下的manage.py 文件:find . -name ‘manage.py’

2、atime/ctime/mtime选项,根据时间(24小时为单位)查找
注:a表示access,c表示create,m表示modify
查找24小时之内创建的文件: find . -ctime -1
查找24小时之前创建的文件: find . -ctime 1
注:atime和mtime用法一致

3、amin/cmin/mmin选项,根据时间查找
查找10分钟之内创建的文件: find . -cmin -10
查找10分钟之前创建的文件: find . -cmin 10
注:amin和mmin用法一致

4、anewer/cnewer/mnewer,查找比某一文件新的文件
查找在hello.py之后访问过的文件:find . -anewer hello.py

5、user
查找属于某一用户的文件:find . -user the5fire

6、type
查找所有文件:find . -type f
查找所有目录包含demo的目录:find . -type d -name ‘*demo*’

7、exec,据说是很强大的参数
查找’setup.py’文件,然后打开: find . -name ‘setup.py’ -exec vim {} \;
另外一个最常用的,强制删除项目下面的所有.svn文件目录,find . -name ‘.svn’ -exec rm -rf {} \;

8、empty
显示所有的空白文件,并显示详细:find . -empty -ls #加ls完全画蛇添足,只是为了说明这个参数。

9、size
显示大小为10k的文件:find . -size 10k
显示所有大于10k的文件:find . -size +10k
显示所有小于10k的文件:find .-size -10k

10、or、and、not, 或、与、非查询
查找大于10k或者名称含有demo的文件:find . -size +10k -o -name ‘*demo*’
查找大于10k且小于100k的文件:find . -size +10k -a -size -100k
查找大于10k并且名称不含有demo的文件:find . -size +10k ! -name ‘*demo*’

11、perm,根据文件权限查找
注:如查找权限为600的文件:find . -perm 600,如果权限前面加“-”号,表示满足一位匹配即可,
如:find . -perm 007会匹配权限为007、077、777的文件

12、regex,用正则表达式查找
如: find . -regex ‘.*/[0-9]\w.*’(匹配以数字开头的文件)

13、-maxdepth,限制目录深度查找
查找一级目录下的所有py文件:find . -name ‘*.py’ -maxdepth 1

输入find -help之后还有很多,就不一一列了,这些应该能满足日常需求了。欢迎补充^_^

建议继续学习

  1. find命令的一点注意事项 (阅读 11,682)
  2. Linux命令行里的“瑞士军刀” (阅读 11,443)
  3. 利用find和sed批量替换文件内容 (阅读 11,346)
  4. Linux find命令的速度 (阅读 5,942)
  5. jQuery之find选择器 (阅读 4,284)
  6. 在Linux下搜索包含特定字符串的文件列表 (阅读 2,545)
  7. find命令详解 (阅读 2,222)
  8. 如何在 Linux 中使用 find (阅读 1,983)
  9. Linux 中一种友好的 find 替代工具 (阅读 1,642)