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

Linux新手求助:如何批量将截图重命名为1.png、2.png等格式

解决批量重命名截图文件的问题

你的脚本问题在于把两个循环逻辑混在了一起,还错误保留了原脚本中针对.js文件的后缀替换代码,导致无法正常执行。下面是几种可行的解决方法:

方法一:Bash 循环脚本(最通用)

这是最基础且无需额外安装工具的方法,适合所有Linux系统:

# 初始化计数器从1开始
counter=1
# 遍历当前目录下所有截图格式的PNG文件
for f in Screenshot_*.png; do
  # 重命名文件,-- 避免文件名以-开头时出错,-n 防止覆盖已存在文件
  mv -n -- "$f" "${counter}.png"
  # 计数器自增1
  counter=$((counter + 1))
done
  • 用Screenshot_*.png代替*.png,可以避免误改目录里其他无关的PNG文件
  • 加上-n参数能防止意外覆盖已存在的文件(比如目录里已经有1.png时会跳过),如果确定没有重名文件可以去掉-n
  • 你的截图文件名是时间戳格式,默认的字典序遍历和时间顺序一致,重命名后的顺序就是截图的先后顺序

如果需要严格按文件修改时间排序(比如文件名不按时间排序时),可以用ls -tr来遍历:

counter=1
# ls -tr 按修改时间从旧到新排序文件
for f in $(ls -tr Screenshot_*.png); do
  mv -n -- "$f" "${counter}.png"
  counter=$((counter + 1))
done

方法二:用 rename 命令(更简洁)

如果你的系统安装了Perl版本的rename(Debian/Ubuntu默认自带,CentOS/RHEL需要先安装prename包),可以用一行命令完成:

# -n 是测试模式,先预览修改结果,确认无误后去掉-n执行
rename -n 's/^Screenshot_\d+_\d+\.png/$N.png/' Screenshot_*.png
  • ^Screenshot_\d+_\d+\.png精准匹配你的截图文件名格式,\d+表示任意长度的数字
  • $N是rename自带的自动递增变量,默认从1开始

注意事项

  • 执行重命名操作前,建议先备份文件,避免误操作导致文件丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:00:10