You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将父目录嵌套子目录中的JPEG文件复制到新目录?

嘿,这个需求太常见了!我给你几个靠谱的方案,不管你用 Linux/macOS/WSL 还是 Windows 都能搞定:

方法1:用 find 命令(Linux/macOS/WSL 通用)

这是最经典的处理嵌套文件的方式,灵活又好用。

首先确保目标目录 NEW 存在,不存在的话先创建:

mkdir -p ./NEW

然后执行复制命令:

find ./Parent -type f -iname "*.jpeg" -exec cp {} ./NEW/ \;

我给你拆解下参数:

  • ./Parent:指定要搜索的父目录
  • -type f:只找文件(排除目录)
  • -iname "*.jpeg":忽略大小写匹配所有 .jpeg 文件(如果要同时匹配 .jpg,可以改成 -iname "*.jp*g")
  • -exec cp {} ./NEW/ \;:对每个找到的文件执行 cp 命令,{} 代表当前找到的文件路径,\; 是命令结束标记

如果担心重名文件被覆盖,可以加上 -n 参数(不覆盖已存在的文件):

find ./Parent -type f -iname "*.jpeg" -exec cp -n {} ./NEW/ \;

或者用 -b 参数自动备份重名文件:

find ./Parent -type f -iname "*.jpeg" -exec cp -b {} ./NEW/ \;
方法2:用 rsync 命令(更高效,适合大量文件)

如果嵌套目录里文件特别多,rsync 会比 find+cp 更高效,而且它会自动跳过已存在且内容相同的文件。

同样先确保 NEW 目录存在,然后执行:

rsync -r --include="*.jpeg" --include="*/" --exclude="*" ./Parent/ ./NEW/

参数解释:

  • -r:递归遍历目录
  • --include="*.jpeg":包含所有 .jpeg 文件
  • --include="*/":必须先包含所有子目录,不然 rsync 没法深入嵌套目录查找文件
  • --exclude="*":排除所有其他文件和目录
方法3:Windows 系统专用(CMD/PowerShell)

如果你用的是 Windows 原生终端,也有对应的方法:

CMD 命令

先创建目标目录(如果不存在):

md NEW

然后执行复制:

for /r "Parent" %f in (*.jpeg) do copy "%f" "NEW\"

注意:如果是在批处理脚本里写,要把 %f 改成 %%f

PowerShell 命令

先创建目录:

New-Item -ItemType Directory -Path .\NEW -Force

然后复制:

Get-ChildItem -Path .\Parent -Recurse -Filter *.jpeg | Copy-Item -Destination .\NEW

要是想忽略大小写匹配,可以加上 -File -Name 参数配合通配符:

Get-ChildItem -Path .\Parent -Recurse -File | Where-Object {$_.Name -match '\.jpe?g$'} | Copy-Item -Destination .\NEW

内容的提问来源于stack exchange,提问作者Mehdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:18:05