Path
是否可以指定目錄名稱可變的路徑?
在 mpv 播放器和 dvds 上問這個問題時,我偶然發現了一個更通用的問題:通常是否可以指定一個路徑,其中一個目錄名稱是可變的?
假設我想用命令執行一個文件。執行檔在 中
/dir1/dir2/dir3/
,但名稱dir2
是變數,儘管它總是包含dir3
(類似於VIDEO_TS
,總是類似於/media/username/NAME-OF-DVD/VIDEO_TS/
whileNAME-OF-DVD
變化)。如果我想使用命令執行該文件,我必須指定路徑。可以使用這樣的命令(其中一個目錄名可能是“通用”的路徑)?
Bash 可以使用萬用字元。Globbing 允許您指定將匹配多個值的模式。它的工作方式類似於 REGEX,但重要的是要注意它們並不相同。
*(pattern)
匹配模式 0 次或更多次?(pattern)
匹配一個模式 0 或 1 次+(pattern)
匹配模式 1 次或多次[ ]
可以匹配其中包含的值,包括[a-z]
a 到 z( | )
可以匹配管道兩側的值如果您不放置模式,則該模式充當萬用字元。
所以像這樣的路徑
/dir1/dir2/dir3/
可以表示為:
/dir1/*/dir3/
/dir1/dir*/dir3/
/dir1/*(dir2|otherdir)/dir3/
/dir1/dir*[1-99]/dir3/
有關更多資訊,請查看此連結: http: //mywiki.wooledge.org/glob
或者這個:http ://www.linuxjournal.com/content/bash-extended-globbing