查找所有在路径中具有特定文件夹(例如配置)并且具有特定文本(例如主机名)的 *.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
在标准输出上以格式列出当前文件