Wildcards

.??* 在 shell 命令中是什麼意思?

  • March 26, 2015

以下命令將所有“點”文件和文件夾tar

tar -zcvf dotfiles.tar.gz .??*

我熟悉正則表達式,但我不明白如何解釋.??*。我執行ls .??*tree .??*查看了列出的文件。為什麼這個正則表達式包含.以 example 開頭的文件夾中的所有文件?

Glob不是正則表達式。通常,shell 會嘗試將您在命令行中鍵入的任何未引用的內容解釋為 glob。Shell 根本不需要支持正則表達式(儘管實際上許多更高級、更現代的 Shell 都支持,例如構造中的=~正則表達式匹配運算符bash [[)。

.??*一個球體。它匹配任何以文字點開頭的文件名.,後跟任意兩個(不一定相同)字元,??後跟等效於 的正則表達式[^/]*,即 0 個或多個不是 的字元/

有關 shell 路徑名擴展(“globbing”的全稱)的完整詳細資訊,請參閱POSIX 規範

引用自:https://unix.stackexchange.com/questions/43713