MacOS 11 如何从指定目录随机选取135个文件复制到另一目录?
MacOS 11 随机抽取135个文件并复制的实现方法
所有操作可以直接通过Mac自带的工具完成,不需要额外安装第三方软件。
终端命令实现(最快捷无依赖)
操作前先确认两个核心路径:
- 待抽取文件的源目录:可以直接把对应文件夹拖进终端窗口,自动生成绝对路径,避免手打出错
- 存放抽取文件的目标目录:注意不要把目标目录设为源目录本身,也不要把目标目录放在源目录的子文件夹下,否则扫描时会把已经复制过去的文件算进抽取池
替换下面命令里的两个路径值,整段粘贴到终端执行即可:
# 替换为你自己的实际路径 SOURCE_DIR="/你的源目录绝对路径" TARGET_DIR="/你的目标目录绝对路径" # 自动创建不存在的目标目录 mkdir -p "$TARGET_DIR" # 随机抽取135个文件并复制 find "$SOURCE_DIR" -maxdepth 1 -type f -print0 | sort -R -z | head -z -n 135 | xargs -0 -I {} cp {} "$TARGET_DIR/"
各参数的实际作用:
-maxdepth 1:只扫描源目录第一层的普通文件,不会递归进入子文件夹抽取。如果需要把所有子文件夹里的文件都纳入抽取范围,直接删掉这个参数即可sort -R:调用Mac自带BSD工具集的随机排序功能,不需要额外安装Linux下的gshuf组件- 整段流程逻辑:列出所有符合条件的文件 → 随机打乱顺序 → 取前135个 → 批量复制到目标路径
常见问题调整
- 如果碰到同名文件不想被覆盖:把最后一行的
cp参数改成cp -n {} "$TARGET_DIR/",-n参数会自动跳过目标路径已经存在的同名文件 - 如果提示权限不足:打开
系统偏好设置-安全性与隐私-隐私-完全磁盘访问权限,给终端勾选对应权限即可 - 如果源目录总文件数不足135个:命令会自动复制全部找到的文件,不会抛出报错
可视化无命令方案
如果不想敲终端命令,可以用Mac自带的Automator制作简单的自动化流程:
- 打开启动台找到「自动操作(Automator)」,新建一个「快速操作」类型的工作流
- 从左侧资源库依次拖拽三个动作到工作流编辑区:「获取指定的访达项目」、「随机选取访达项目」、「拷贝访达项目项」
- 在「随机选取访达项目」动作里,设置随机抽取135个项目
- 在「拷贝访达项目项」动作里指定最终的目标存放路径
- 给工作流关联好源目录后运行,就会自动完成随机抽取和复制操作
内容的提问来源于stack exchange,提问作者Nyctalus
相关产品推荐
相关产品推荐

