Bash
如何通過指定前綴子字元串來匹配文件名?
我想在我的本地機器上複製位於遠端機器上的文件,其文件名與前綴字元串匹配。
我試圖只選擇名稱以
massif
或者calgrind
使用以下命令開頭的文件:scp my-machine:/home/user/a-folder/[massif,callgrind]* .
但是,此表達式允許匹配空字元串加上任意數量的字元,因此匹配與目錄相關的所有文件名。
我必須進行哪些更改才能使其正常工作?
聽起來你想要花括號:
scp my-machine:/home/user/a-folder/{massif,callgrind}* .
否則,您將匹配單個字元,而不是兩個完整的字元串。
bash
進行許多不同類型的擴展和替換;這些都記錄在 bash 手冊頁中 - 查找該EXPANSION
部分。在這裡,該[
類型包含在“路徑名擴展”(它匹配路徑名)和{
“大括號擴展”下(它從提供的選項生成多個參數,無論文件是否存在)。