将名称中包含大写字母的所有文件从src目录移动到目标目录?

时间:2015-09-05 20:43:08

标签: linux command

如何编写这个linux命令? 将名称中包含大写字母的所有文件从src目录移动到目标目录?

3 个答案:

答案 0 :(得分:1)

如果我正确阅读了您的问题,请使用:

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

答案 1 :(得分: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

BTW:*[A-Z]*由shell评估,而不是mv。因此,以下工作:

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

答案 2 :(得分:0)

此版本确保只有"文件"在根源文件夹中移动到目标目录:

find / source / * [A-Z] * -maxdepth 1-type f -exec mv {} / target \;