遍历目录的命令find

find: 遍历目录树

find命令的三个基本功能:

  • find命令从指定的查找范围开始,递归地查找子目录。
  • 凡满足条件的文件或目录
  • 执行规定的动作

举例:

find ver1.d ver2.d -name '*.c' -print
范围:当前目录的子目录ver1.d和ver2.d
条件:与名字.c匹配。注意:.c应当用引号括起
动作:把查找到的文件的路径名打印出来

find命令的特点:

  • 功能强,选项多
  • 递归式查找
  • 灵活性:
    • 在“动作”中可以指定任何命令(也包括用户自己编写的处理程序),使得find成为一个任意处理命令可以借由来进行目录遍历的壳(类似awk对文本的逐行扫描,find对目录森林中为文件和目录逐个扫描)

find关于条件的选项

-name 'wildcard'
文件名与wildcard匹配,注意:

  • 必需的引号(防止shell替换命令的时候出错)
  • 对通配符的解释由find完成
  • 这里的"文件名"仅指路径名的最后一部分

-regex pattern
整个路径名与正则表达式pattern匹配

-type
f:普通文件
d:目录
I:符号连接文件
c:字符设备文件
b:块设备文件
p:管道文件

-size +-n单位
指定文件大小(大于>, 等于,小于<)
单位有c(字符),b(块,512字节),k(1024),M(兆),G(吉),默认为b

-mtime +-ndays 文件最近修改时间
-newer file 文件最近修改时间比file的还晚

其他选项
-inum
-user,-nouser
-group

需要的时候查阅find手册

find关于动作的描述

-print
打印查找的文件的路径名
-exec

扫描二维码关注公众号,回复: 11020203 查看本文章
  • 对查找到的目录执行某一命令
  • 在-exec及随后的分号之间的内容作为一条命令

在这命令的命令参数中,{}代表遍历到的目录文件的路径名

-ok
与exec类似,只是对查找到符合条件的目标执行一个命令前需要经过操作员确认。

猜你喜欢

转载自www.cnblogs.com/realzhaijiayu/p/12747255.html