alexchenco Asked: 2022-12-02 22:39:31 +0800 CST2022-12-02 22:39:31 +0800 CST 2022-12-02 22:39:31 +0800 CST 如何设置移动文件的数量? 772 我正在将png文件从移动source/到dest/: mv /source/*.png /dest/ 我如何更改该命令以便我只移动 10 个png文件? terminal 3 个回答 Voted Best Answer Stephen Kitt 2022-12-02T23:31:33+08:002022-12-02T23:31:33+08:00 您可以在 Zsh 中使用glob 限定符执行此操作: 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/ Stéphane Chazelas 2022-12-03T02:53:40+08:002022-12-03T02:53:40+08:00 POSIXly,这可以通过以下方式完成: set -- /source/*.png [ "$#" -le 10 ] || shift "$(( $# - 10 ))" mv -- "$@" /dest/ 这将按字母顺序移动最后 10 个。 请注意,它排除了隐藏的文件,如果没有匹配项,它会尝试移动一个名为的文件/source/*.png并且可能会失败。 Hobber 2022-12-02T23:35:28+08:002022-12-02T23:35:28+08:00 ls /source/*.png | head -n10 | xargs -I{} mv {} /dest/
您可以在 Zsh 中使用glob 限定符执行此操作:
按字母顺序移动前 10 个。您可以使用
o
/O
/n
限定符选择不同的顺序。例如:将移动 10 个最大的。
选择前 10 个匹配项而无需费心排序的优化版本可以使用
Y
限定符完成:POSIXly,这可以通过以下方式完成:
这将按字母顺序移动最后 10 个。
请注意,它排除了隐藏的文件,如果没有匹配项,它会尝试移动一个名为的文件
/source/*.png
并且可能会失败。ls /source/*.png | head -n10 | xargs -I{} mv {} /dest/