Mac终端可批量按后缀移动文件:用mv *.pdf ~/Documents/等命令直接移动;支持逐条执行或启用extglob合并移动;建议先ls预览再mv确保安全;还可结合循环实现移动中重命名。

Mac终端根据文件后缀名批量移动文件
当你在Mac的Downloads或某个项目目录里堆积了几十个PDF、上百张JPG,又不想手动一个个拖进对应文件夹时,终端一条命令就能按后缀归类移动——不依赖图形界面、不卡顿、不漏文件。
用mv加通配符一步到位
这是最常用也最可靠的方式,适用于目标文件夹已存在且路径明确的场景。
第一步:打开终端,用cd进入源目录,例如:cd ~/Downloads
第二步:执行移动命令,比如把所有PDF移进Documents文件夹:mv *.pdf ~/Documents/
第三步:确认是否成功——运行ls ~/Documents/,看PDF是否全部出现。如果提示no match,说明当前目录下根本没PDF文件,不是命令错了。
这条命令会【直接移动,不复制】,原位置文件立即消失;若目标目录不存在,系统会报错并中止,不会新建同名文件。
一次移动多种后缀(分两次写)
当你要把JPG和PNG一起移进图片文件夹,但又怕混进其他类型,不能简单写*.{jpg,png}——因为默认bash不支持花括号扩展,得先启用。
方法一:逐条执行(稳妥,新手推荐)mv *.jpg ~/Pictures/mv *.png ~/Pictures/
方法二:启用扩展后合并(需确认shell类型)
先运行shopt -s extglob(仅对当前终端会话生效),再执行mv *@(jpg|png) ~/Pictures/。注意:zsh用户默认不认shopt,此法在macOS默认zsh下会报错。
安全移动:先预览再执行
担心通配符匹配出意外?比如*.log误把mylogfile.txt也拖进去?那就用ls打头阵。
输入ls *.log,回车——终端只列出所有匹配的.log文件,不执行任何移动。确认无误后,把ls换成mv,其余部分完全复用:mv *.log ~/Logs/。
这步能【避免误删或错移】,尤其适合处理重要日志、配置或原始素材前必做。
移动同时重命名(带序号)
如果你不仅想归类,还要让每个文件名带上编号以便排序,就得组合mv和shell循环。
进入目标目录后,运行:counter=1; for f in *.txt; do mv "$f" "note_${counter}.txt"; ((counter++)); done
这条命令会把当前目录所有.txt文件依次重命名为note_1.txt、note_2.txt……注意:它【不跨目录移动,只在当前目录重命名】;如要边移边编序,需先cd到目标文件夹,再用绝对路径引用源文件。











