新闻中心

Linux 下怎么批量复制上万张图片(高效方法)

2025-12-04
浏览次数:
返回列表
推荐rsync+--files-from方案:先用find生成图片路径列表,再通过rsync单次扫描批量复制,避免重复系统调用,兼顾速度、安全与通用性。

linux 下怎么批量复制上万张图片(高效方法)

直接用 cp 复制上万张图片会非常慢,尤其当源目录文件极多、路径深或目标盘 I/O 负载高时。真正高效的核心不是“换命令”,而是减少系统调用开销 + 并行 + 避免重复遍历。下面几种方法按推荐顺序排列,兼顾通用性、安全性和速度。

用 rsync + --files-from 实现单次扫描 + 并行复制

这是最稳又够快的方案。先生成文件列表(只扫一次),再让 rsync 批量读取并复制,避免 cp 对每个文件都 stat/open/close 一遍。

  • 生成所有图片路径列表(假设全是 .jpg/.png):
find /source/dir -type f \( -iname "*.jpg" -o -iname "*.png" \) > filelist.txt
  • 用 rsync 批量复制(自动跳过已存在且内容一致的文件):
rsync -* --files-from=filelist.txt / /dest/dir/

注意:/ 是根路径占位符,rsync 会把 filelist.txt 中的相对路径(如 photos/2025/001.jpg)按源目录为基准拼接。若 list 是绝对路径,需加 --relative 或改用 rsync -a --files-from=filelist.txt / /dest/dir/ 并确保 list 内路径以 / 开头。

用 parallel + cp 实现真正多线程复制

单个 cp 是单线程,而 parallel 可把文件列表分片并发执行,特别适合多核 CPU 和 NVMe 盘。

  • 安装 parallel(Ubuntu/Debian):
sudo apt install parallel
  • 并发复制(限制 8 个进程,防止 I/O 打满):
find /source/dir -type f \( -iname "*.jpg" -o -iname "*.png" \) | parallel -j 8 cp {} /dest/dir/{/}

{/} 表示取文件名(不含路径),可保留原名;若要保留完整子目录结构,改用 rsync -a --relative 更稳妥。

星辰Agent 星辰Agent

科大讯飞推出的智能体Agent开发平台,助力开发者快速搭建生产级智能体

星辰Agent 378 查看详情 星辰Agent

用 tar 管道流式复制(零磁盘临时文件,适合同盘或高速网络)

不落地生成中间文件,内存+管道直传,对 SSD 或远程 NFS/CIFS 共享特别友好。

  • 一行搞定(自动过滤图片,保留目录结构):
find /source/dir -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | tar -c --null -T - | (cd /dest/dir && tar -x)

优点:无临时文件、stat 开销小、支持长路径和特殊字符;缺点:无法跳过已有文件,全量覆盖。如需增量,还是优先选 rsync。

避坑提醒

  • 别用 cp -r 整目录 —— 它会递归 stat 每个子目录,哪怕里面全是空文件夹
  • 慎用 cp --reflink=always(仅 Btrfs/XFS)—— 虽快但复制后仍是硬链接,删源文件会影响目标
  • 复制前先 df -h 确认目标空间足够,万级图片容易误估体积
  • 关键数据务必加 --dry-run(rsync)或先试 100 张,验证路径和权限

基本上就这些。实际速度取决于你的存储类型(HDD 还是 NVMe)、CPU 核数、是否跨文件系统。一般 rsync + files-from 或 parallel + cp 能比原始 cp 快 3–10 倍,而且稳定可控。

以上就是Linux 下怎么批量复制上万张图片(高效方法)的详细内容,更多请关注其它相关文章!


# 跳过  # 短视频seo设计方案  # 西城网站建设怎样获客  # 营销号推广效果  # 德阳网站页面优化公司  # 带app的网站建设方案  # 丽江seo优化方案  # 金华酱香型白酒网站建设  # 网站优化基本诊断模式  # 乌海企业网站建设报价  # 禅城搜索SEO网络推广  # 临时文件  # linux  # 编辑器  # 文件列表  # 多核  # 服务管理  # 多线程  # 运行环境  # 万张  # 递归  # 排列  # ubuntu 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  Win10桌面图标出现小盾牌怎么办 Win10去除UAC图标教程【解决】  J*a递归快速排序中静态变量的状态管理与陷阱  J*aScript中localStorage数据的获取、清洗与格式化教程  利用5118提升短视频内容效果_5118短视频关键词优化方法  韩剧圈正版入口页面_韩剧圈官网登录链接  Fabric模组开发:自定义物品与物品组的现代管理方法  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  《刺客信条:影》PS5 Pro和Switch 2画面对比  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  Pandas DataFrame:高效添加条件计算列  CSS布局中意外空白:解决padding-top导致的顶部间距问题  拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达  J*a最大堆Heapify方法修复:索引计算与边界条件深度解析  浏览器打开即用 美图秀秀网页版入口  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  天眼查企业查询官网入口 天眼查官方网页版查询  机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等  淘宝支付提示失败如何解决 淘宝支付流程优化方法  “音游” × “怪文书” 题材的节奏冒险游戏 《晕晕电波症候群》确定于2026年4月发售!  神庙逃亡小游戏在线玩 神庙逃亡小游戏入口  迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法  Go Martini框架:动态服务解码后的图片内容  J*aScript中正确使用querySelectorAll与复杂CSS选择器  魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  Mac怎么使用表情符号_Mac Emoji快捷键面板  uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验  qq邮箱日历功能怎么用_创建日程与会议邀请的技巧  Go语言JSON解析深度指南:动态访问与结构体映射实践  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置  如何有效阻止外部脚本意外修改内联样式的高度属性  《噬血代码2》新预告片发布 展示游戏剧情  2026年CSGO开箱网站推荐 CSGO开箱平台精选  怎样更改Windows系统的默认安装路径_避免C盘爆满的终极设置【技巧】  使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战  b站如何看历史记录_b站观看历史找回方法  fishbowl官网免费版 fishbowl养鱼网站入口  AO3访问入口汇总 AO3网页版同人作品一键直达  J*aScript对象创建方式_J*aScript设计模式应用  荣耀Play7T运行卡顿解决_荣耀Play7T性能优化  Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口  CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题  163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航  如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  J*aScript中如何高效提取对象指定属性 

搜索