重写以下内容的最有效方法是什么:
mv *.jpg ~/Pictures && mv *.gif ~/Pictures && mv *.png ~/Pictures
你可以分组为一个
mv *.{jpg,gif,png} ~/Pictures
如果您担心文件过多导致参数列表过长
find -regex ".*\.\(jpg\|gif\|png\)" -print0 | xargs -r0 mv --target='~/Pictures'
高效的?文件名计算中的任何效率都可能被实际复制所淹没,但您可以尝试:
mv *.jpg *.gif *.png ~/Pictures
如果您正在谈论很多文件,则必须注意破坏命令行大小限制,但是您可能会考虑使用find
and xargs
(我不会通过完整描述来使解决方案复杂化,尤其是因为SO网络上其他地方的扩展问题可能有答案)。
shopt -s nocaseglob
mv *.{jpg,gif,png} ~/Pictures