如何基于通配符匹配递归查找当前和子文件夹中的所有文件?
当前回答
以下命令有助于搜索任何文件
无论情况如何未经许可排除文件夹的结果从根目录或您喜欢的路径搜索。更改/使用您喜欢的路径。
语法:
find <FromDirectory> -iname '<FileName wild char allowed>' 2>&1 | grep -v "Permission denied"
实例
find / -iname 'C*.xml' 2>&1 | grep -v "Permission denied"
其他回答
Use
find <directory_path> -type f -name "<wildcard-match>"
在通配符匹配中,您可以提供希望匹配的字符串,例如*.c(对于所有c文件)。
通过管道找到grep通常更方便;它为您提供了用于任意通配符匹配的正则表达式的全部功能。
例如,要查找文件名中不区分大小写字符串“foo”的所有文件:
find . -print | grep -i foo
你也可以使用ripgrep。
例子:
搜索所有包含子字符串psql的文件名,
rg --files | rg psql
如果要使用通配符搜索特殊文件,可以使用以下代码:
find . -type f -name "*.conf"
假设您想从这里搜索每个.conf文件:
.表示从此处(当前位置)开始搜索-type表示此处为文件(f)的搜索项的类型。-name表示您希望使用*.conf名称搜索文件。
对于Python>3.5,使用glob。指向当前文件夹并查找.txt文件:
python -c "import glob;[print(x) for x in glob.glob('./**/*txt', recursive=True)]"
对于较旧版本的Python,可以安装glob2
推荐文章
- 在Bash中检查变量是否存在于列表中
- 查看PS命令的全部输出
- 确保一次只运行一个shell脚本实例的快速方法
- Linux命令将域名转换为IP
- 如何从命令行在windows中找到mysql数据目录
- 如何在Makefile中设置子进程的环境变量
- 如何让“wc -l”打印没有文件名的行数?
- 有效地测试Linux上的端口是否打开?
- 如何从另一个文件A中删除文件B中出现的行?
- 对以制表符分隔的文件进行排序
- Shell脚本删除超过n天的目录
- 使用sudo时未找到命令
- 当有命令行参数时,如何使用GDB分析程序的核心转储文件?
- 如何检查shell脚本中是否存在命令?
- 如何使用查找命令从列表中查找所有具有扩展名的文件?