Answers:
要么...
find $directory_name -name \*.sql
例如
find / -name \*.sql
要么
find ~ \*.sql
(其中〜等于/ home /您的用户名/),或...
find /usr/local/share/ \*.sql
等等。
在命令行中运行:
cd / && find | grep '\.sql$'
将“ /”更改为要搜索的目录。
该find
命令无需grep就可以完成任务(使用其他选项),但是我发现上述用法更为方便。
依次执行以上命令:
cd /
)find
)或以下的所有文件和目录| grep '\.sql$'
)结尾的任何内容find
已经具有过滤功能
我知道这是一篇旧文章,但是我对此很陌生,并且我找到了一种简单的方法来查找目录及其子目录中某个扩展名的所有文件。好吧,您首先导航到parent Directory
then find . -name '*.sql'
,然后它将在目录及其子目录中找到所有带有.sql扩展名的文件。
就我而言,我想删除目录及其子目录中的所有.xml文件,所以我要做的更多的是我在这里添加了removefind . -name '*.xml' | xargs rm
希望这可以帮助某人:)
find
了解-delete
命令。无需参与rm
。或者,您可以使用-exec
命令直接调用它,而无需通过管道和绕行xargs
。
locate -br \\.sql$ | egrep '^/folder/path/'
如果尚未安装,请先使用以下命令进行安装:
sudo apt install mlocate
mlocate.db
实例,而该实例不是在Ubuntu中开箱即用的(我相信)。另外,为什么不简单locate '/folder/path/*.sql'
呢?
locate
则表达式与egrep
locate
匹配glob表达式,例如/folder/path/*.sql
,而不是正则表达式。
man locate
我了解-r, --regexp REGEXP - Search for a basic regexp REGEXP
,我认为它是正则表达式。无论如何,我尝试了您的“全局表达式”,但是没有用,对不起