按名稱內容中的模式搜尋檔案
使用 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