Find 详解 macOS


逻辑运算符

  • -o 或者
  • !非

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

文件名

find . -name "*.rmvb"

正则表达式

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

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

完整路径的意思就是不只是文件名这样,它还有前面的东西,所以也需要将前面部分考虑到正则表达式中才行,不然匹配不到文件,如下:

Kyle@Kyles-mbp Downloads % find . -type f -regex "漫长.*.mp4"
Kyle@Kyles-mbp Downloads % find . -type f -regex ".*漫长.*.mp4" 
./漫长的季节第01集.mp4/漫长的季节第01集.mp4
./漫长的季节第06集.mp4/漫长的季节第06集.mp4
./漫长的季节第10集.mp4/漫长的季节第10集.mp4
./漫长的季节第11集.mp4/漫长的季节第11集.mp4
./漫长的季节第07集.mp4/漫长的季节第07集.mp4
./漫长的季节第12集.mp4/漫长的季节第12集.mp4
./漫长的季节第04集.mp4/漫长的季节第04集.mp4
./漫长的季节第08集.mp4/漫长的季节第08集.mp4
./漫长的季节第09集.mp4/漫长的季节第09集.mp4
./漫长的季节第05集.mp4/漫长的季节第05集.mp4
./漫长的季节第02集.mp4/漫长的季节第02集.mp4
./漫长的季节第03集.mp4/漫长的季节第03集.mp4

扩展 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
GitHub 加速计划 / term / terminal
94.53 K
8.17 K
下载
The new Windows Terminal and the original Windows console host, all in the same place!
最近提交(Master分支:2 个月前 )
d04381ec "HighContrast" is not a possible requested theme. So `_UpdateBackgroundForMica()` would force the settings UI to be light or dark. To fix this, we just check if we're in high contrast mode and, if so, we don't bother setting the requested theme. 8 天前
e83434ff Turns out that having the styles for the KeyChordText and ParsedCommandLineText be empty for high contrast mode caused the issue. Since we're already using theme resources for the colors, we automatically adjust properly to whatever the high contrast theme is (Thanks XAML!). Bonus points: - we didn't need the theme dictionaries anymore, so I just moved them to the ResourceDictionary directly - ParsedCommandLineTextBlockStyle isn't used. So I removed it altogether. Validated command palette with multiple high contrast themes. See PR thread for demo. Closes #17914 8 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐