如何基于通配符匹配递归查找当前和子文件夹中的所有文件?
当前回答
使用查找:
find . -name "foo*"
find需要一个起点,所以。(点)指向当前目录。
其他回答
通过管道找到grep通常更方便;它为您提供了用于任意通配符匹配的正则表达式的全部功能。
例如,要查找文件名中不区分大小写字符串“foo”的所有文件:
find . -print | grep -i foo
如果您的shell支持新的globbing选项(可以通过:shopt-s globstar启用),则可以使用:
echo **/*foo*
递归查找任何文件或文件夹。这得到了Bash 4、zsh和类似外壳的支持。
我个人已经定义了这个shell函数:
f() { find . -name "*$1*"; }
注意:以上行可以直接粘贴到shell或添加到用户的~/.bashrc文件中。
然后我可以通过键入以下内容来查找任何文件:
f some_name
或者,您可以使用具有简单语法的fd实用程序,例如fd模式。
使用查找:
find . -name "foo*"
find需要一个起点,所以。(点)指向当前目录。
对于Python>3.5,使用glob。指向当前文件夹并查找.txt文件:
python -c "import glob;[print(x) for x in glob.glob('./**/*txt', recursive=True)]"
对于较旧版本的Python,可以安装glob2
以下命令有助于搜索任何文件
无论情况如何未经许可排除文件夹的结果从根目录或您喜欢的路径搜索。更改/使用您喜欢的路径。
语法:
find <FromDirectory> -iname '<FileName wild char allowed>' 2>&1 | grep -v "Permission denied"
实例
find / -iname 'C*.xml' 2>&1 | grep -v "Permission denied"
推荐文章
- Linux: kill后台任务
- 如何修改Linux系统中打开文件的数量限制?
- 删除Bash脚本中的重复条目
- 如何将Bash命令的输出分配给变量?
- errno线程安全吗?
- PHP中的异步shell执行器
- 如何在Linux中永久导出变量?
- Git显示“警告:永久添加到已知主机列表”
- 如何首次配置postgresql ?
- 检索Linux上单个进程的CPU使用情况和内存使用情况?
- 如何从远程SSH会话发送数据到本地剪贴板
- 我如何得到bash完成工作与别名?
- SSH端口转发~/。ssh /配置文件?
- 通过使用shell脚本替换文件名中的特定模式来重命名多个文件
- 在Linux中安装Java SDK后,我可以在哪里找到它?