1

重写以下内容的最有效方法是什么:

mv *.jpg ~/Pictures && mv *.gif ~/Pictures && mv *.png ~/Pictures
4

3 回答 3

3

你可以分组为一个

mv *.{jpg,gif,png} ~/Pictures

如果您担心文件过多导致参数列表过长

find -regex ".*\.\(jpg\|gif\|png\)" -print0 | xargs -r0 mv --target='~/Pictures'
于 2011-09-09T08:36:10.717 回答
2

高效的?文件名计算中的任何效率都可能被实际复制所淹没,但您可以尝试:

mv *.jpg *.gif *.png ~/Pictures

如果您正在谈论很多文件,则必须注意破坏命令行大小限制,但是您可能会考虑使用findand xargs(我不会通过完整描述来使解决方案复杂化,尤其是因为SO网络上其他地方的扩展问题可能有答案)。

于 2011-09-09T08:40:59.270 回答
0
shopt -s nocaseglob
mv *.{jpg,gif,png} ~/Pictures
于 2011-09-09T08:41:15.617 回答