Bash

如何通過指定前綴子字元串來匹配文件名?

  • October 26, 2018

我想在我的本地機器上複製位於遠端機器上的文件,其文件名與前綴字元串匹配。

我試圖只選擇名稱以massif或者calgrind使用以下命令開頭的文件:

scp my-machine:/home/user/a-folder/[massif,callgrind]* .

但是,此表達式允許匹配空字元串加上任意數量的字元,因此匹配與目錄相關的所有文件名。

我必須進行哪些更改才能使其正常工作?

聽起來你想要花括號:

scp my-machine:/home/user/a-folder/{massif,callgrind}* .

否則,您將匹配單個字元,而不是兩個完整的字元串。

bash進行許多不同類型的擴展和替換;這些都記錄在 bash 手冊頁中 - 查找該EXPANSION部分。在這裡,該[類型包含在“路徑名擴展”(它匹配路徑名)和{“大括號擴展”下(它從提供的選項生成多個參數,無論文件是否存在)。

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