如何基于通配符匹配递归查找当前和子文件夹中的所有文件?
当前回答
find将查找与模式匹配的所有文件:
find . -name "*foo"
但是,如果您需要图片:
tree -P "*foo"
其他回答
这将搜索当前目录和子目录中的所有相关文件,分别计算它们的行数以及总数:
find . -name "*.wanted" | xargs wc -l
用于文件搜索
查找/-xdev-name settings.xml→ 整个计算机查找。/-xdev-名称设置.xml→ 当前目录及其子目录
对于具有扩展名类型的文件:
find . -type f -name "*.iso"
find将查找与模式匹配的所有文件:
find . -name "*foo"
但是,如果您需要图片:
tree -P "*foo"
Use
find path/to/dir -name "*.ext1" -o -name "*.ext2"
解释
第一个参数是要搜索的目录。默认情况下,find执行递归。-o代表-或。所以上面的意思是搜索这个通配符或这个。如果您只有一个模式,那么不需要-o。通配符模式周围的引号是必填的。
对于Python>3.5,使用glob。指向当前文件夹并查找.txt文件:
python -c "import glob;[print(x) for x in glob.glob('./**/*txt', recursive=True)]"
对于较旧版本的Python,可以安装glob2
推荐文章
- 如何从查找“类型d”中排除此/ current / dot文件夹
- 在tmux中保持窗口名称固定
- 只使用md5sum获取哈希值(没有文件名)
- 如何生成一个核心转储在Linux上的分段错误?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 使用sh shell比较字符串
- 在Bash中测试非零长度字符串:[-n "$var"]或["$var"]
- 如何创建Bash别名?
- 如何设置ssh超时时间?
- 将所有变量从一个shell脚本传递到另一个?
- 只列出UNIX中的目录
- 如何在Apache服务器上自动将HTTP重定向到HTTPS ?
- 如何删除shell脚本中文件名的扩展名?
- 如何限制从grep返回的结果的数量?
- 'find -exec'是Linux中的shell函数