“五分钟学命令系列”之一《find技巧》

** 0x01 基本命令格式**

find   path   -option   [ -print ]   [ -exec   -ok   command ]   {} \;

path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print:find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和\;之间的空格。
-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

0x02 实例

  1. 想查看当前文件夹及子文件夹里有没有文件名为“abc”的文件
# find . -name abc 
. :表示当前目录
-name:表示要根据名称查找
  1. 想查看当前文件夹及子文件夹里有没有”xyz”目录
# find . -type d -name xyz
-type:表示设定类型,d表示文件夹类型,可以替换为f(普通文件)、l(链接文件)
  1. 想找出当前文件夹及子文件夹里所有后缀是”.txt”的文件
# find . -name “*.txt”
  1. 想查找当前目录及其子文件夹中普通用户“www”的文件有哪些
# find . -user www 
-user:用于设定所属用户的名称,此处可替换为-group,即所属用户组的名称
  1. 想查找当前文件夹及子文件夹里权限设定为755的所有文件
# find . -perm 755
-perm:用于设定权限
  1. 想查找当前文件夹及子文件夹里的同时含有b字符和3字符的文件:用到正则表达式技术
# find . -regex ‘.*b.*3′ 
-regex:表示使用正则表达式进行匹配。请注意,此命令会和“全路径”进行匹配,也就是说前面要加.*,因为输出结果中会有“./”符号。
  1. 如果想全部输出用find命令查找出的”*.abc”文件的内容
# find . -type f -name “*.abc” -exec cat {} \; 
-exec 表示由find找到的匹配项会作为“-exec后面设定的命令”的参数
可以使用-ok代替-exec,这样对每个匹配项进行操作,都会要求用户确认(y为是,n为否)
命令最后的{} \; 别忘了写,其中{}代表用find查找到的结果中的每一个查找项。
  1. 查找当前目录下在5分钟内被访问过的文件
# find . -amin -5 
访问过用amin,修改过用mmin,文件状态改变过用cmin
精确到分钟的用amin,mmin,cmin,精确到天的用atime,mtime,ctime
在5分钟之内的用-5,在5分钟以上的用+5
  1. 想查找当前目录及子目录下文件大小大于10M的所有文件
# find . -size +10000000c 
-size:表示文件大小,+表示大于某个数,-表示小于某个数。c表示单位是字节,你可以将c换成k,M,G。
  1. 上述所有的find命令都是查找当前目录及其子目录。如果不想深入到子目录中,而是只查找当前一层目录
# find . -maxdepth 1 -name “*.c”

博客地址:http://yangfannie.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,534评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,944评论 9 468
  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...
    很少更新了阅读 3,110评论 0 0
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,188评论 2 33
  • ...
    春去落花阅读 1,839评论 0 0