Kong Asked: 2021-02-18 14:59:04 +0800 CST2021-02-18 14:59:04 +0800 CST 2021-02-18 14:59:04 +0800 CST 如何使用双通配符移动多个文件夹? 772 我正在尝试移动所有中间有数字 1 的文件夹(glove.6B.60d.txt)和(model) mv "./*.txt)(1)(m*" "/home/e1" 但我收到错误消息 mv: cannot stat './*.txt)(1)(m*': No such file or directory 我究竟做错了什么?我在同一个文件夹 mv 2 个回答 Voted Best Answer steeldriver 2021-02-18T15:07:40+08:002021-02-18T15:07:40+08:00 Glob 不会在引号内展开 - 你需要类似的东西 ./*".txt)(1)(m"* 或者 ./*.txt")(1)("m* 或者 ./*.txt\)\(1\)\(m* HuHa 2021-02-18T15:39:47+08:002021-02-18T15:39:47+08:00 这是一个最不幸的目录名称选择,因为您需要在这些 shell 命令中使用某种程度的引号;但是引号也可以防止通配符扩展。 但是您可以将多个部分引用的字符串拼凑在一起;喜欢 mv *".txt)("1")(model"* /home/e1 或简化为 mv *.txt??1??model* /home/e1 这假设您总是有 *.txt,然后是任意两个字符,然后是数字 1,然后是任意两个字符,然后是 model*,这应该可以很好地工作。 甚至将其改进为一次接受所有数字: mv *.txt??[0-9]??model* /home/e1 请注意,引号用于保护外壳中的特殊字符,但在这里您需要通配符扩展。
Glob 不会在引号内展开 - 你需要类似的东西
或者
或者
这是一个最不幸的目录名称选择,因为您需要在这些 shell 命令中使用某种程度的引号;但是引号也可以防止通配符扩展。
但是您可以将多个部分引用的字符串拼凑在一起;喜欢
或简化为
这假设您总是有 *.txt,然后是任意两个字符,然后是数字 1,然后是任意两个字符,然后是 model*,这应该可以很好地工作。
甚至将其改进为一次接受所有数字:
请注意,引号用于保护外壳中的特殊字符,但在这里您需要通配符扩展。