macOS命令行批量复制指定文件名的文件
创作时间:
作者:
@小白创作中心
macOS命令行批量复制指定文件名的文件
引用
1
来源
1.
https://www.tutouzhang.com/post/107.html
在macOS系统中,如果你需要将大量指定名称的文件从一个目录复制到另一个目录,可以使用命令行工具来实现这一需求。本文将介绍两种方法:直接使用文件名列表和动态读取文件名列表。
准备工作
- 文件路径:
- 源文件存储路径:
/Volumes/婚礼/DCIM
(包含子文件夹) - 目标文件夹:
/Volumes/婚礼/DCIM/matched_photos
- 编号列表:
- 编号保存在文本文件
/Volumes/婚礼/DCIM/numbers.txt
中,内容格式如下:0182,0178,0168,0165,0163,...
- 环境:
- macOS系统(使用zsh shell)
方案1:直接使用文件名列表
1. 准备编号文件
确保你的编号列表已经保存为文本文件。如果没有,可以手动创建:
- 打开“文本编辑”(TextEdit)。
- 输入编号,例如:
0182,0178,0168,0165,0163,...
- 保存为
/Volumes/婚礼/DCIM/numbers.txt
(确保保存为纯文本格式,避免富文本)。
2. 将编号转换为文件名格式
照片文件名格式为IMG_XXXX.CR2
,需要将编号加上前缀IMG_
和后缀.CR2
。可以用文本编辑器的“查找和替换”功能:
- 查找
,
,替换为.CR2,IMG_
。 - 手动在开头加
IMG_
,结尾加.CR2
。 - 示例结果(部分):
IMG_0182.CR2,IMG_0178.CR2,IMG_0168.CR2,...
3. 使用终端命令搜索和复制文件
直接将文件名列表写入命令,并设置权限:
mkdir -p /Volumes/婚礼/DCIM/matched_photos && chmod 777 /Volumes/婚礼/DCIM/matched_photos && numbers=(IMG_0182.CR2 IMG_0178.CR2 IMG_0168.CR2 IMG_0165.CR2 IMG_0163.CR2) && for number in $numbers; do find /Volumes/婚礼/DCIM -type f -name "$number" -exec cp {} /Volumes/婚礼/DCIM/matched_photos/ \; ; done && chmod 777 /Volumes/婚礼/DCIM/matched_photos/*
命令说明:
mkdir -p /Volumes/婚礼/DCIM/matched_photos
:创建目标文件夹。chmod 777 /Volumes/婚礼/DCIM/matched_photos
:为目标文件夹设置777权限。numbers=(...)
:定义文件名数组,直接使用转换后的文件名。find /Volumes/婚礼/DCIM -type f -name "$number"
:在/Volumes/婚礼/DCIM
及其子文件夹中搜索精确匹配的文件名。-exec cp {} /Volumes/婚礼/DCIM/matched_photos/ \;
:将找到的文件复制到新文件夹。chmod 777 /Volumes/婚礼/DCIM/matched_photos/*
:为复制后的所有文件设置777权限。
方案2:动态读取numbers.txt文件
如果你的编号列表可能会变化,或者你希望更灵活地管理文件,可以利用numbers.txt
,动态读取编号并生成文件名。
1. 准备编号文件
确保/Volumes/婚礼/DCIM/numbers.txt
已存在,内容为逗号分隔的编号:
0182,0178,0168,0165,0163,...
2. 使用终端命令读取和处理
以下命令会读取numbers.txt
,将编号转换为文件名格式并执行搜索,同时设置权限:
mkdir -p /Volumes/婚礼/DCIM/matched_photos && chmod 777 /Volumes/婚礼/DCIM/matched_photos && numbers=($(cat /Volumes/婚礼/DCIM/numbers.txt | tr ',' ' ')) && for number in $numbers; do find /Volumes/婚礼/DCIM -type f -name "IMG_${number}.CR2" -exec cp {} /Volumes/婚礼/DCIM/matched_photos/ \; ; done && chmod 777 /Volumes/婚礼/DCIM/matched_photos/*
命令说明:
mkdir -p /Volumes/婚礼/DCIM/matched_photos
:创建目标文件夹。chmod 777 /Volumes/婚礼/DCIM/matched_photos
:为目标文件夹设置777权限。numbers=($(cat /Volumes/婚礼/DCIM/numbers.txt | tr ',' ' '))
:cat
读取numbers.txt
。tr ',' ' '
将逗号替换为空格,生成zsh数组。for number in $numbers; do ...
:遍历每个编号(例如0182)。-name "IMG_${number}.CR2"
:动态生成文件名,例如IMG_0182.CR2
。-exec cp {} /Volumes/婚礼/DCIM/matched_photos/ \;
:将找到的文件复制到新文件夹。chmod 777 /Volumes/婚礼/DCIM/matched_photos/*
:为复制后的所有文件设置777权限。
优点
- 如果需要更改编号,只需编辑
numbers.txt
,无需修改命令。 - 更灵活,适合动态需求。
常见问题
- 路径错误
- 检查磁盘是否挂载:
ls /Volumes/婚礼/DCIM
- 文件名不匹配
- 查看实际文件名:
find /Volumes/婚礼/DCIM -type f | head -n 10
- 子文件夹未包含
- find默认递归搜索子文件夹。可以测试单个文件:
find /Volumes/婚礼/DCIM -type f -name "IMG_0182.CR2"
- numbers.txt读取问题
- 检查文件内容:
cat /Volumes/婚礼/DCIM/numbers.txt
- 权限问题
- 如果仍无法查看或编辑文件,检查权限:
ls -l /Volumes/婚礼/DCIM/matched_photos
测试截图
热门推荐
如何通过技术分析预测黄金价格走势?
买卖合同纠纷起诉状如何填写?赶紧收藏这个视频
今年流行的“锥形裤”,比阔腿裤、紧身裤都显瘦,穿出小细腿!
告别外卖!上班族如何自制健康午餐,营养搭配全攻略
海龟汤游戏规则及背景故事
农村自建房法院可以拍卖吗
中国信通院发布《政府数字化转型发展研究报告(2024年)》
深入了解电磁感应:自感线圈的原理和应用
手串上的梵文:佛教文化与佩戴指南
最新严选!烟台6条Citywalk路线,给你好玩!
寻味“尔滨”,解码地道哈埠菜独特魅力
常见肝脏检查项目有哪些
呼和浩特公主府博物馆,至今已300多年历史,是满蒙联姻的见证地
易经64卦哲学的深度探索(通俗易懂,解密易经卦象的意义与哲理)
研究发现:每多看一小时手机屏幕,视网膜会加速衰老32天
地铁驾驶员:幕后英雄与挑战者
梦见紫色花朵:神秘紫色背后的深层寓意
丹东旅游攻略自由行最佳路线:解锁边境小城的宝藏玩法
梦到小猫的寓意与心理解析
此“炎”非彼“炎”,此“症”非彼“症”——“消炎药”你用对了吗?
病毒性扁桃体炎需要吃抗生素吗
江苏适合种植重楼吗?从气候到土壤的全面分析
笔记本屏幕清洁用什么好?
用什么擦电脑屏幕才能防黑?
降低心率的训练方法
人体体液包括哪些?详解人体体液的分类、功能与平衡调节
如何通过开源项目进行职业发展
失落的中国上古历史:探索中国历史文化起源
“身-心”共病是老年人认知衰退的风险因素
MP4压缩后为什么大小几乎没变化(已解决)