Path

是否可以指定目錄名稱可變的路徑?

  • February 18, 2016

在 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

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