我正在尝试以下命令:
ls myfile.h1.{`seq -s ',' 3501 3511`}*但是ls会引发错误:
ls: cannot access myfile.h1.{3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511}*: No such file or directory似乎ls认为整行都是文件名,而不是通配符模式。但是,如果我只是在终端中复制命令ls myfile.h1.{3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511}*,我就会得到预期的列表。
为什么输入命令是完全有效的,而不是seq的用法?
发布于 2016-02-24 04:00:27
您的情况不需要seq,请尝试
$ ls myfile.h1.{3500..3511}如果您想使用seq,我建议使用format选项
$ ls $(seq -f 'myfile.h1.%g' 3501 3511)但我不认为有任何理由这样做。
更新:注意到我没有注意到原始帖子中的球体。这样,支撑扩展仍然是首选的方式。
$ ls myfile.h1.{3500..3511}*如果bash支持零填充,甚至可以将常见的数字计算在内。
$ ls myfile.h1.35{00..11}*如果没有,你至少可以抽出3个
$ ls myfile.h1.3{500..511}*请注意,seq替代方案不适用于全局化。
其他答案有更多细节..。
https://stackoverflow.com/questions/35592860
复制相似问题