这个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{}/目标;