macos - 递归查找所有匹配特定模式的文件

标签 macos bash command-line

我需要找到(或更具体地说,计算)所有匹配此模式的文件:

*/foo/*.doc

第一个通配符星号包含可变数量的子目录。

最佳答案

在 gnu find 中,您可以使用正则表达式,它(与 -name 不同)匹配整个路径:

find . -regex '.*/foo/[^/]*.doc'

只计算文件的数量:

find . -regex '.*/foo/[^/]*.doc' -printf '%i\n' | wc -l

(%i 格式代码导致 find 打印 inode 编号而不是文件名;与文件名不同,inode 编号保证不包含像 a 这样的字符换行,所以计数更可靠。感谢@tripleee 的建议。)

不过,我不知道这是否适用于 OSX。

关于macos - 递归查找所有匹配特定模式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207896/

相关文章:

python - 在 python/bash/perl 脚本中执行和读取二进制文件的输出

c++ - 更新到macOS Catalina后无法使用C++代码编译R软件包

c - 具有嵌套函数的 OSX "Illegal instruction 4"

multithreading - 通常为一个线程保留多少堆栈空间? (POSIX/OSX)

objective-c - Facebook Like 按钮未在 Cocoa WebView 中启动新窗口

linux - Linux进程了解父级<>子级

bash - 子 shell 中的 shell split

bash - 使用文本文件中的列表重命名目录中的文件

bash - 如何用其他文件替换文件中的字符串。

excel - 从命令行发送电子邮件