找到特定文件夹

找到特定文件夹

我想找到我的服务器上以“wordpress-seo”结尾的所有文件夹。

我试过寻找命令,但时间太长。

sudo  find /home/w/s -type d -name 'wordpress-seo'

现在我正在尝试locate命令,但它返回所有具有 wordpress-seo 的路径。

a/wp-content/plugins/wordpress-seo
a/wp-content/plugins/wordpress-seo/languages/
...
...

我想排除wordpress-seo/*文件和文件夹。我只想要文件夹名称。 IE

a/wp-content/plugins/wordpress-seo
b/wp-content/plugins/wordpress-seo

尝试了正则表达式但没有任何运气。

locate -r '/\w+wordpress\-seo/b'
OR
locate '/*/wordpress-seo/'

有什么帮助吗?

答案1

尝试这个:

locate -r "wordpress-seo$"

尽管我应该提到它find提供了比locate.您发现速度更快,因为每次您给它提供搜索内容时,它都会在搜索文件时locate从数据库中读取数据。/var/lib/mlocate/mlocate.dbfind

locate的数据库cron每天都会更新,您也可以随时通过以下方式手动更新数据库:

sudo updatedb

这将使每日更新后创建的文件在数据库cron中可用locate,因此您可以通过locate.还要检查配置文件/etc/updatedb以查看哪些文件系统、路径被排除。

答案2

迟到总比不到好。fd是新发现。

选项:

  • H- 搜索隐藏的文件和文件夹
  • I- 不尊重忽略文件
  • t- 要搜索的文件类型(d == 目录)

用法:

fd -HI -t d 'wordpress-seo$'

至于速度,你可以找到基准在这里,但严格来说fd比 快指数倍find

费多拉安装:

sudo dnf install fd-find

Debian 安装:

sudo apt-get install fd-find

其他安装方法可以参考github

相关内容