什么';在bash中移动多个通配符最有效的方法是什么?
重写以下内容最有效的方法是什么:什么';在bash中移动多个通配符最有效的方法是什么?,bash,wildcard,mv,Bash,Wildcard,Mv,重写以下内容最有效的方法是什么: 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
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 -regex ".*\.\(jpg\|gif\|png\)" -print0 | xargs -r0 mv --target='~/Pictures'
高效的?文件名计算的任何效率都可能被实际的复制所淹没,但您可以尝试:
mv *.jpg *.gif *.png ~/Pictures
如果你谈论的是很多文件,你必须注意不要超出命令行大小的限制,但是你可能会考虑使用
find
和xargs
(我不会通过详细描述来使解决方案复杂化,特别是因为在SO网络的其他地方可能有一个扩展问题的答案).有效吗?文件名计算的任何效率都可能被实际的复制所淹没,但您可以尝试:
mv *.jpg *.gif *.png ~/Pictures
如果你谈论的是很多文件,你必须注意不要超出命令行大小的限制,但是你可能会考虑使用
find
和xargs
(我不会通过详细描述来使解决方案复杂化,特别是因为在SO网络的其他地方可能有一个扩展问题的答案).或更笼统地说出几个来源(这就是上面的扩展)mv*.jpg*.gif*.png~/Pictures
——假设您没有特别使用&
组合器来防止在移动jpg文件失败时复制gif文件。或者更一般地说,命名多个源(这是上面展开的内容)mv*.jpg*.gif*.png~/Pictures
——假设在移动jpg文件失败时,您没有特别使用&
组合器来防止复制gif文件。