在路径中具有特定文件夹的文件中搜索文本,然后显示匹配的行和文件权限

在路径中具有特定文件夹的文件中搜索文本,然后显示匹配的行和文件权限

查找所有在路径中具有特定文件夹(例如配置)并且具有特定文本(例如主机名)的 *.config 文件。然后显示匹配的行以及文件权限。

现在,下面的命令为我提供了路径中具有“config”文件夹、具有“主机名”文本以及文件权限的所有配置文件。

ls -la `find / -type f -name "*.config" -exec grep -li 'hostname' {} + | grep config`

样本输出

-rw-r--r-- 1 user users  2240 Jan 17  2014 /home/config/1.config
-rw-r--r-- 1 user users  2146 Aug  2  2013 /home/test/config/abc.config

这些文件中包含文本“主机名”。现在我还想查看发生“主机名”匹配的行。有没有一种方法可以做到这一点,而不需要 bash 脚本?

答案1

使用find命令选项:

find -type f -path "*/config/*.config" -exec grep 'hostname' {} \;  -ls

  • -path <pattern>- 文件名与 shell 模式匹配<pattern>

  • -ls-ls -dils在标准输出上以格式列出当前文件

相关内容