我沒有找到很多關于這個的資訊,據我所知它遞回地匹配檔案名和目錄,但它是如何作業的?
uj5u.com熱心網友回復:
glob-expression**用于匹配所有檔案以及零個或多個目錄和子目錄。如果模式后跟 a /,則只有目錄和子目錄匹配。
這意味著它在命令列上的路徑名擴展模式期間用于遞回檔案搜索。
根據您使用的外殼,需要啟用它。在 bash 中,這是通過以下方式完成的:
$ shopt -s globstar
以下是示例:
# list all files recursively
$ echo **
# list all files recursively that end with .txt
$ echo **/*.txt
# list all files recursively that are in a subdirectory foo
$ echo **/foo/**
請注意,以下模式不能遞回作業**.txt。這被視為兩個單個星號球的組合,與*.txt.
注意: bash 和 zsh 之間存在細微差別,但總的來說它的作業原理相同。
uj5u.com熱心網友回復:
Linux 使用正則運算式和一些命令,如 grep 或find。正如您所說, ls 或 find * 將遞回顯示所有檔案和目錄。
“*”通配符表示:顯示之前包含的所有內容
如果您使用 ls "*" 它將顯示之前不包含任何內容的所有路徑,因此,當前目錄中的所有路徑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/457899.html
上一篇:如何使用find命令忽略檔案
