Python如何仅通过文件名而非路径查找文件并复制到其他目录?
仅通过文件名查找并复制文件的实现方法
以下分不同操作系统给出可直接使用的方案:
Linux/macOS 环境
使用系统自带的find命令即可完成操作,示例针对目标文件20.10.2021.txt:
- 全系统精确查找并复制到指定目录
命令:find / -name "20.10.2021.txt" -type f -exec cp {} /path/to/your/target/directory \;
参数说明:/为搜索起始路径,可替换为你想缩小的搜索范围(比如/home/yourname),减少搜索耗时-name代表严格匹配大小写的文件名搜索,如需忽略大小写可替换为-iname-type f限定只搜索普通文件,避免匹配到同名目录- 如需避免重名文件覆盖,可将
cp改为cp -n,已存在的同名文件会跳过复制
- 提前校验搜索结果
先执行find / -name "20.10.2021.txt" -type f,确认匹配到的文件列表符合预期后再执行复制操作,避免误操作。
Windows 环境
CMD(命令提示符)方案
- 全磁盘查找并复制命令:
for /r C:\ %i in (20.10.2021.txt) do @copy "%i" C:\path\to\your\target\directory
说明:C:\为搜索起始路径,可替换为指定目录,如需先校验结果可将@copy改为@echo,先输出所有匹配到的文件路径。
PowerShell方案
- 精确查找并复制命令:
Get-ChildItem -Path C:\ -Filter "20.10.2021.txt" -File -Recurse | Copy-Item -Destination C:\path\to\your\target\directory
说明:如需避免重名覆盖,可在Copy-Item后添加-NoClobber参数;默认已忽略文件名大小写。
通用提示:如果设备中存在多个同名文件,上述命令会将所有匹配到的文件复制到目标目录,未加防覆盖参数时后复制的文件会覆盖先复制的同名文件,建议先校验搜索结果再执行复制。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

