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



这个linux命令怎么写?将所有文件名包含大写字母的文件从源目录移动到目标目录?

如果我没看错你的问题,可以这样写:

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

明显但错误的解决方案是

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]*是由壳计算的,而不是mv。因此下面的不能工作:

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

这个版本确保只有根源文件夹中的"Files"被移动到目标目录:

找到/源/* [a - z] * maxdepth 1型f - mv{}/目标;

相关内容

最新更新