6

如果我在我的脚本中写这个字符串:

list=$(ls /path/to/some/files/*/*/*.dat)

它工作正常。但我需要的是

files="files/*/*/*.dat"
list=$(ls /path/to/some/${files})

它说

ls: /path/to/some/files/*/*/*.dat: No such file or directory

我该怎么做?

4

2 回答 2

17

如果您仅在确实没有匹配.dat文件的情况下收到该消息,请将其添加到您的脚本中:

shopt -s nullglob

如果没有匹配的文件,它将导致 glob 扩展为一个空列表,而不是按字面意思对待。

于 2012-07-27T12:53:47.463 回答
4

尝试这个:

list=$(find /path/to/some/files/ -mindepth 3 -maxdepth 3 -name '*.dat')
于 2012-07-27T12:29:21.447 回答