我想实现作为命令行中输入如何让bash在变量中扩展通配符?
mv ./images/*.{pdf,eps,jpg,svg} ./images/junk/
,从bash脚本里面同样的效果。我有:
MYDIR="./images"
OTHERDIR="./images/junk"
SUFFIXES='{pdf,eps,jpg,svg}'
mv "$MYDIR/"*.$SUFFIXES "$OTHERDIR/"
其中,在运行时,给人的不是意外的错误:
mv: rename ./images/*.{pdf,eps,jpg,svg} to ./images/junk/*.{pdf,eps,jpg,svg}:
No such file or directory
什么是引用这一切正确的方式,使mv
会怎么做所需的扩张? (是的,有很多匹配./images/
该模式的文件。)
+1,整洁的技巧,不知道`@()`,我学到了一些新东西。只要在manpage中查看它,对于任何想知道'?()`模式,`*()`模式,`+()`模式,`@()`模式和`!()`模式的人来说。如果启用了“extglob”,则全部可用。 – falstro 2011-01-15 09:43:42