title: Linux文件检索

date: 2017-12-11 19:03:01

tags: linux

categories: linux


whereis

只要执行

whereis ls

就可以搜索到“ls”命令和它的帮助文档的位置。

但它只能搜索man手册、二进制文件和源代码文件。

which

which是一个比whereis更简单的命令,通常用来判断是否安装某个软件,它只在$PATH环境变量中指定的路径中搜索

$ which pacman
/usr/bin/pacman

find

最强大的搜索命令

find []path...] [expression]

-print 输出检索结果

-exec 对匹配的文件执行shell命令

比如要搜索3天前当天发生变化的所有文件

$ find / -mtime 3

搜索3天内发生变化的所有文件

$ find / -mtime -3

搜索3天以前发生变化的所有文件

$ find / -mtime +3

类似的查找条件还有

参数 作用
-user username 按所有者名查找
-group gname 文件属于gname
-nouser 文件没有有效的所有者,即文件的
-name filename 按文件名检索
-atime n 最近访问时间(天)
-amin n 最近访问时间(分钟)
-anewer file 最近访问时间(比file修改时间要晚)
-ctime n 按文件创建时间查找
-mtime n 按文件修改时间查找
-empty 空文件或空目录
-size n 按照文件大小查找
-type b/c/d/p/f/l/s/ 查找块文件/字符文件/目录/命名管道/普通文件/符号链接/套接字
-maxdepth n 最大查找深度
-mindepth n 最小查找深度
-prune pathname 忽略一个目录

例如要在test目录下查找不在test4目录下的文件

$ find test -path "test/test4" -prune -o -print

-o 可以理解为or

上述表达式的伪码表述是

if -path == "test/test4"
-prune
else
-print

-exec是要对找到的文件执行的动作

find . -mtime -1 -exec ls -l {} \;

上述命令列出当前目录下一天内变化的文件的详细信息,ls -l很容易理解,{}是一个占位符,在find执行过程中不断替换为当前找到的文件,后面的exec结束的标记,而\ 是转义字符。

最新文章

  1. 让AutoMapper更好用
  2. 移动web app开发小贴士 收藏有用
  3. dede数据库文件导入失败的可能原因是数据表前缀不同,这里的失败指的是mysql添加了数据,但后台不显示
  4. lintcode :最长公共子串
  5. [HZNUOJ1524]排队买票(DP)
  6. android 开发上传图片遇到返回 FileNotFoundException
  7. EXT 数据按F12,F11 显示问题
  8. Android(java)学习笔记214:开源框架的文件上传(只能使用Post)
  9. iOS 上传项目常见问题
  10. 【Netty】codec框架
  11. python学习===将py文件从打包成exe程序
  12. Linux 实现服务器之间时间同步
  13. SQLSERVER 聚集一个表的字段2008及以后,要求支持XML
  14. python的IDE工具-- Pycharm
  15. vue 的动画
  16. SpringBoot------异步任务的使用
  17. VMware Ubuntu如何连接互联网
  18. C++类指针类型的成员变量的浅复制与深复制
  19. 给MySQL增加一个表示例
  20. Eclipse背景与字体大小和xml文件中字体大小设置

热门文章

  1. 返回枚举中的desciption
  2. CentOS 6.8 防火墙配置
  3. <数字签名是什么>笔记
  4. 使用Python启动一个简单的服务器
  5. Tomcat启动报错:This file is needed to run this program
  6. Ubuntu16.04首次root登录设置
  7. 线程的信号量Semaphore
  8. FZU 2150 fire game (bfs)
  9. 传纸条---(dp)
  10. oracle 11g R2(静默安装)