Linux

如何堆疊萬用字元以定位特定文件?

  • November 3, 2017

我想定位所有名為fooxxxbarxxx. 所有這些文件的共同點是它包含foobar.

我試過使用*foo*bar**foo**bar*但它不起作用。

具體來說,我正在嘗試創建指向這些文件的軟連結,其餘程式碼已經可以用於更直接的執行(查看 的所有子文件夾path):

shopt -s globstar

ln -s /path/**/*foo*bar* .

謝謝

bashshell 中,您需要extglob為此 OR 類型的 shell 擴展使用選項。

shopt -s extglob nullglob

然後做 globbing

ln -s /path/**/@(*foo*bar*|*bar*foo*)

POSIXly:

find /path -name '.*' -prune -o -name '*foo*' -name '*bar*' -exec sh -c '
 ln -s "$@" .' sh {} +

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