Mac terminal find 指令常用详解

Find 详解


逻辑运算符

  • -o 或者
  • !非

如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件

文件名

find . -name "*.rmvb"

正则表达式

使用 -regex 时有一点要注意:-regex 不是匹配文件名,而是匹配完整的文件名(包括路径)。

find . -regex ".*\.rmvb"
# 查找所有 RMVB文件

扩展 Regex -E

直接使用 -regex 是使用的基础的正则语法,想用高级的就需要添加 -E 这个参数,如位置指定等等。
(MacLinux 有所不同,Linux 中是 -regextype posix-extended)
如:

find -E . -iregex ".*(金刚狼|x战警).*"

文件大小

find . -size +1000M
# 查找大于 1000Mb 的文件
# 大小单位有 b(512字节) c w(2字节) k M G 区分大小写

文件类型

  • f 普通文件
  • l 符号连接
  • d 目录
  • c 字符设备
  • b 块设备
  • s 套接字
  • p Fifo
find . -type f -name "*.rmvb"
# 搜索普通文件 .rmvb

文件时间戳

  • 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
  • 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
  • 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间
find . -type f -atime -7
# 搜索最近七天内被访问过的所有文件

find . -type f -atime 7
# 搜索恰好在七天前被访问过的所有文件

find . -type f -atime +7
# 搜索超过七天内被访问过的所有文件

否定参数 !

find /home ! -name "*.txt"
# 找出/home下不是以.txt结尾的文件

将搜索结果作为参数执行

{} 用于与 -exec 选项结合使用来匹配所有文件,然后会被替换为相应的文件名。
-ok-exec 行为一样,不过它会给出提示,是否执行相应的操作。

find . -type f -name "*.txt" -exec cat {} \;> all.txt
# 查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中

find .-type f -user root -exec chown tom {} \;
# 找出当前目录下所有root的文件,并把所有权更改为用户tom

查找结果写入文件

find . -name *.rmvb > FilmList.txt

猜你喜欢

转载自blog.csdn.net/KimBing/article/details/81543257
今日推荐