目录中所有文件的数组,但不包括一个文件

Ric*_*i D 2 arrays bash

试图弄清楚.txt除了一个被调用的文件之外如何包含所有文件manifest.txt.

FILES=(path/to/*.txt) 
Run Code Online (Sandbox Code Playgroud)

Ben*_* W. 5

您可以使用扩展的glob模式:

shopt -s extglob
files=(path/to/!(manifest).txt)
Run Code Online (Sandbox Code Playgroud)

该模式匹配"除了一个给定模式之外的任何东西".!(pattern-list)

请注意,这完全排除了manifest.txt,没有别的; mmanifest.txt例如,仍然会进入数组.


作为旁注:根本没有匹配的glob会扩展到自身(参见手册这个问题).可以使用nullglob(扩展为空字符串)和failglob(打印错误消息)shell选项更改此行为.