如何编写这个linux命令? 将名称中包含大写字母的所有文件从src目录移动到目标目录?
答案 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 \;