Answers:
find . foo*
,foo*
则将其展开,然后传递以查找。
" "
对于递归搜索非常必要。
find . -name "foo*" 2>/dev/null
用管道发现grep通常更方便;它为您提供了用于任意通配符匹配的正则表达式的全部功能。
例如,要查找文件名中不区分大小写的字符串“ foo”的所有文件:
~$ find . -print | grep -i foo
find
还具有-iname
,-regex
和-iregex
为不区分大小写的通配符,正则表达式,和不区分大小写的正则表达式匹配的标志,因此输送至grep
是不必要的。
find
支持这些选项的命令。有时grep
成为唯一的选择。
find
将找到所有与模式匹配的文件:
find . -name "*foo"
但是,如果您想要一张照片:
tree -P "*foo"
希望这可以帮助!
brew install tree
为Mac OSX用户的W / O apt-get
安装
如果您的外壳支持新的通配选项(可以通过以下方式启用shopt -s globstar
),则可以使用:
echo **/*foo*
递归查找任何文件或文件夹。Bash 4,zsh和类似的shell支持此功能。
我个人已经定义了这个shell函数:
f() { find . -name "*$1*"; }
注意:以上行可以直接粘贴到shell或添加到用户~/.bashrc
文件中。
然后,我可以通过键入以下内容查找任何文件:
f some_name
或者,您可以使用具有简单语法的fd
实用程序,例如fd pattern
。
shopt -s globstar
命令激活扩展的globing 。Bash,zsh和类似的Shell支持此功能。
bash-3.2$ shopt -s globstar
给bash: shopt: globstar: invalid shell option name
asciicast2vector
可以使用。
搜索递归文件的默认方法,在大多数情况下可用
find . -name "filepattern"
它从您所在的当前目录中开始文件名或模式的递归遍历。使用find命令,您可以使用通配符和各种开关来查看选项的完整列表,键入
man find
或者如果您的系统上没有手册页
find --help
但是,还有更多更现代,更快捷的工具可以遍历整个文件系统并为文件建立索引,其中一种常见的工具是定位或定位/定位,您应该查看操作系统的手册以了解如何安装它,安装后需要启动数据库,如果安装脚本不帮您完成,可以通过键入以下内容手动完成
sudo updatedb
并且,使用它来查找某些特定的文件类型
locate filename
或者,要从当前目录中查找文件名或模式,可以键入:
pwd | xargs -n 1 -I {} locate "filepattern"
它将浏览其文件数据库,并快速打印出与您键入的模式匹配的路径名。要查看定位选项的完整列表,请输入:
locate --help
或man locate
另外,您可以配置locate通过cron作业在计划的时间更新它的数据库,因此在1AM更新db的示例cron看起来像:
0 1 * * * updatedb
这些cron作业需要由root配置,因为updatedb需要root特权才能遍历整个文件系统。
下面的命令有助于搜索任何文件
1)不管情况
2)结果未经许可排除文件夹
3)从根目录或所需路径搜索。用您喜欢的路径更改/。
语法:
find -iname''2>&1 | grep -v“权限被拒绝”
示例
查找/ -iname'C * .xml'2>&1 | grep -v“权限被拒绝”
find / -iname '*C*.xml' 2>&1 | grep -v "Permission denied"
find / -iname '*C*.xml' 2>/dev/null
如果要使用通配符搜索特殊文件,则可以使用以下代码:
find . -type f -name "*.conf"
假设您要从此处搜索每个.conf文件:
.
表示从此处开始搜索(当前位置)
-type
表示此处为文件(f)的搜索项类型。
-name
表示您要搜索带有* .conf名称的文件。
采用
find path/to/dir -name "*.ext1" -o -name "*.ext2"
说明
find
会递归。-o
代表-or
。因此,以上表示搜索此通配符或此通配符。如果只有一种模式,则不需要-o
。