关于Linux:如何基于通配符匹配递归查找当前和子文件夹中的所有文件?

How can I recursively find all files in current and subfolders based on wildcard matching?

如何根据通配符匹配递归查找当前和子文件夹中的所有文件?


使用定位是:

1
find . -name"foo*"

find需要一个起点,和.(点)的两个点的当前目录。


piping grep查找到更多的往往是convenient;它给你的全功率的四正则表达式的匹配对野生卡。

例如,找到所有病例档案与钝感的字符串"foo"文件名:

1
~$ find . -print | grep -i foo


find会找到所有匹配的文件是A型:

1
find . -name"*foo"

然而,如果你想要一个画面:

1
tree -P"*foo"

希望这helps!


1
find -L . -name"foo*"

在几个案例中,有需要的参数的两个目录的符号链接的行为。城市的默认符号链接是不容忽视的。在那些情况是很长confusing AA会改变目录的子目录和文件,看到的模式匹配,但找不回我的文件名。用你那solves事件。"查找符号链接选项- P L H


如果你支持一个新的壳(shell选项可以激活城市:shopt -s globstar),你可以使用。

1
echo **/*foo*

找到的任何文件或folders recursively。这是支持Bash 4市,壳牌和Zsh相似。

道贺的有壳的定义:这个功能

1
f() { find . -name"*$1*"; }

注:以上线可以糊加两个壳或直接进入你的用户的~/.bashrc文件。

然后我看任何城市typlng档案:

1
f some_name

你可以使用一alternatively fd效用与一个简单的语法,例如fd pattern


1
find <directory_path>  -type f -name"<wildcard-match>"

在野生卡匹配的字符串,你可以提供你希望比赛如*(C C的所有文件)


fd

在情况下,find冰太慢,试图fd公用一个简单和固定在两个find替代老化生锈。

语法:

1
fd PATTERN

演示:

>   <P>   <P>   首页:http:/ / / / FD github.com sharkdp   <P>  </p>
<div class=


你可以使用。

1
# find . -type f  -name 'text_for_search'

如果你想要使用regx使用-iname

1
# find . -type f  -iname 'text_for_search'

默认的递归方式搜索文件,可在大多数用例和冰淇淋

1
find . -name"filepattern"

它开始traversing递归模式为文件名或目录内的电流从在你的位置。与你的命令,你可以使用通配符,和各种开关,看到的全科型战略期权

1
man find

或如果你页面的不可用的系统。

1
find --help

然而,有更多的现代工具我找鸭的阿姨,这是你的整个文件系统和traversing密封你的档案,一个这样的普通工具或冰locate slocate / mlocate,你应该检查你的在线手册,我们如何安装它,一旦它的安装需要两个发起信息数据库,如果不安装脚本这不是你的你,它可以完成的手册地市typlng

1
sudo updatedb

鸭子,看两个使用它的一些特殊的文件类型

1
locate filename

或者,看看两个奶头从文件名或目录内的电流型的,你可以:

1
 pwd | xargs -n 1 -I {} locate"filepattern"

看通网络将其数据库的文件的路径和名称,打印出的悲哀,模式匹配,你有型。 看到全表locate期权的类型: locate --helpman locate

你可以locate additionally configure更新数据库信息的在线预定时报通过cron作业,所以样品cron更新数据库,以1am会看起来像:

1
0 1 * * * updatedb

这些计划需要两个工作configured根市需求,因为updatedb特权两根导线的整个文件系统。


文件搜索 find / -xdev -name settings.xml全电脑… find ./ -xdev -name settings.xml-当前目录及子目录中的应用 为文件类型和扩展

1
find . -type f -name"*.iso"

下面的命令将列出当前文件夹及其子文件夹中具有确切名称"pattern"(例如)的所有文件。

find ./ -name"pattern"


下面的命令有助于搜索任何文件1)不论情况如何2)未经许可排除文件夹的结果3)从根目录或您喜欢的路径进行搜索。更改/使用您喜欢的路径。Syntax:find-iname""2>&;1_grep-v"权限被拒绝"例子

find / -iname 'C*.xml' 2>&1 | grep -v"Permission denied"

1
find / -iname '*C*.xml'   2>&1 | grep -v"Permission denied"


这将搜索当前目录和子目录中的所有相关文件,分别计算它们的行数,以及全部行数:

1
find . -name"*.wanted" | xargs wc -l

如果你想要搜索的两个特殊文件与野生卡,你可以使用下面的代码:

1
find . -type f -name"*.conf"

假如,你想搜索的每一.conf档案从这里:

.均值搜索(电流从这里开始的地方 -type均值of search item,这里冰文件(F)。 你想-name均值与.conf *搜索文件名。