如何设置移动文件的数量?

如何设置移动文件的数量?

我正在将png文件从移动source/dest/

mv /source/*.png /dest/

如何更改该命令以便只移动 10 个png文件?

答案1

你可以在 Zsh 中使用全局限定符

mv /source/*.png([1,10]) /dest/

按字母顺序移动前 10 个。您可以使用o/ O/限定符选择不同的顺序n。例如:

mv /source/*.png(OL[1,10]) /dest/

将移动 10 个最大的。

可以使用限定符完成选择前 10 个匹配项而无需排序的优化版本Y

mv /source/*.png(Y10) /dest/

答案2

POSIXly,这可以通过以下方式完成:

set -- /source/*.png
[ "$#" -le 10 ] || shift "$(( $# - 10 ))"
mv -- "$@" /dest/

这将按字母顺序移动最后 10 个。

请注意,它排除了隐藏的文件,如果没有匹配项,它将尝试移动名为的文件,/source/*.png并且可能会失败。

答案3

ls /source/*.png | head -n10 | xargs -I{} mv {} /dest/

相关内容