我正在尝试使用查找结合大括号扩展和eval来查找子文件夹中的多个文件。当我这样做:
nr1=1001
nr2=1500
eval ls abc*_{$nr1..$nr2}*
它的工作原理,我期望它。然而,当我尝试这样:
eval find path/to/folder -name "abc*_{$nr1..$nr2}*"
我得到的错误信息:
find: paths must precede expression: abc*_{1001..1500}*
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
我已经有和没有评估和似乎没有任何工作尝试不同的组合。基本上我需要find命令来处理使用变量的大括号扩展和文件名中的其他元字符。虽然我不一定需要使用eval,但我必须承认我并不完全理解它。
与'find'你可以做'-name “* PAT1” -o -name “* PAT2”'...等等 –
'-name'采用* single *模式,并且不支持大括号扩展。使用'eval',* best *的情况是,你最终得到一个像'find/path -name abc_1001 * abc_1002 * ...'这样的命令。 – chepner