按名称内容中的模式搜索文件
使用 Linux 命令行(shell)的人的常见任务是搜索具有特定名称或包含特定文本的文件/目录。为了实现这个目的,你应该熟悉 2 个命令:
按名称查找文件
find /var/www -name '*.css'
这将打印出/var/www
下以 .css
结尾的所有文件的完整路径/文件名。输出示例:
/var/www/html/text-cursor.css
/var/www/html/style.css
欲了解更多信息:
man find
查找包含文本的文件
grep font /var/www/html/style.css
这将打印包含指定文件中的图案 font
的所有行。输出示例:
font-weight: bold;
font-family: monospace;
另一个例子:
grep font /var/www/html/
这不像你希望的那样有效。你得到:
grep: /var/www/html/: Is a directory
使用 -R
选项,你需要递归地使用 grep
使其工作:
grep -R font /var/www/html/
嘿好! 看看这个的输出:
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css: font-weight: bold;
/var/www/html/style.css: font-family: monospace;
请注意,当 grep
匹配多个文件时,它会在匹配的行前面加上文件名。如果需要,你可以使用 -h
选项来摆脱它。
欲了解更多信息:
man grep