今天用mv命令移动一个文件夹下的所有图片到另一个文件夹下时候提示参数列表过长,
看了下文件夹下有好几万个文件
[root@VM-16-12-centos img]# mv /home/upload/img/* /home/upload/upload/pay
-bash: /usr/bin/mv: 参数列表过长
-bash: /bin/mv: Argument list too long
[root@VM-16-12-centos img]# ls -l | grep "^-" | wc -l
41055
解决方法:
find 源文件路径 -type f -name '*.jpg' -exec mv {
} 目标路径 \;
例子:
find /home/upload/img/ -type f -name '*' -exec mv {
} /home/upload/upload/pay/ \;
空格和后面的\;不可省略.
这里是查看当前目录下的文件数量,也可以指定某一个目录
ls -l | grep "^-" | wc -l
说明:
ls -l 查看目录下文件信息
grep ^- 过滤列表输出信息,只保留一般文件,如果要保留目录则为 ^d
wc -l 统计输出信息的行数。
如有错误欢迎评论指出,感谢!!!