2015-09-05 62 views

回答

1

如果我正确地读你的问题,使用此:

mv src/*[A-Z]* target/ 
+1

它无法正常工作。你的*也匹配小写字母。所以只有小写字母的文件也会被拾取。 – sickcat

+0

您是否在第一个'*'之前和之后输入了命令_exactly verbatim_,并且在第二个*之前没有空格? –

0

显而易见的,但错误的解决方法是

mv src/*[A-Z]* dest 

然而,字母顺序依赖于语言环境。因此[A-Z]可以包含小写字母:

$> touch abc aBc 
$> export LC_ALL=C 
$> ls *[A-Z]* 
abc 
$> LC_ALL=en_US 
$> ls *[A-Z]* 
aBc abc 

所以一定要设置正确LC_ALL

export LC_ALL=C 
mv src/*[A-Z]* dest 

顺便说一句:*[A-Z]*是由shell评估,而不是MV。因此,以下工作:

LC_ALL=C mv rc/*[A-Z]* dest ## does not work 
0

这个版本确保根源文件夹中唯一的 “文件” 被移动到目标目录:

查找/源/ * [AZ] * 1 -maxdepth -type f -exec mv {}/target \;

相关问题