按名稱內容中的模式搜尋檔案

使用 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