12

我想将我的图像从 .png 重命名为 @2x.png。有没有一些简单的方法可以用终端做到这一点?

4

6 回答 6

19

在 Mark Setchell 的回答的帮助下,我能够用以下单行来解决这个问题:

for f in *.png; do NEW=${f%.png}@2x.png; mv ${f} "${NEW}"; done;

编辑: flopr 是对的,现在应该可以工作了

于 2013-11-15T12:28:15.960 回答
7

让我在贡献中添加一些内容。一种更通用的、多种格式(jpg、png、..)和名称“无扩展”(模式<名称>@2x.<扩展名>)的一个内衬解决方案是:

for file in *; do mv "$file" "${file%.*}@2x.${file##*.}"; done

这就像一个魅力。希望能帮助到你

于 2014-02-23T13:27:27.830 回答
4

这应该这样做:

#!/bin/bash
ls *.png | while read f
do
    BASE=${f%.png}          # Strip ".png" off end
    NEW=${BASE}@2x.png      # Add in @2
    echo mv "$f" "${NEW}"   # Rename
done

将其保存在名为 Add2x 的文件中,然后键入:

chmod +x Add2x
./Add2x

当你看到它要做什么时,去掉“echo”这个词,让它真正做到。

于 2013-11-15T09:10:34.420 回答
3

自 10.10 以来, macOS 有一个鲜为人知的内置选项来批量重命名文件。无需终端,现在只需在 Finder 中选择文件,右键单击并选择“重命名n 个项目...”即可:

在此处输入图像描述

指定查找:.png和替换为:@2x.png,然后单击重命名。

在此处输入图像描述

于 2019-03-13T13:32:09.747 回答
0

我使用的递归单线:

find -L . -type f -name "*.png" -exec bash -c 'echo "$0" "${0%.*}@2x.png"' {} \;

-L 用于处理符号链接...类型 f 仅用于查找文件

如果您对命令的作用感到满意,请将 'echo' 与 'mv' 交换。

于 2014-04-30T05:25:45.027 回答
0

实际上,有一个更简单的方法,使用 Perlrename工具...

rename 's/(.+)\.png/$1\@2x.png/i' *.png

就是说... “替换一个或多个字符,后跟.png相同的字符和。对所有 PNG 文件以@2x.png不区分大小写的方式 ( ) 执行此操作。”i

rename工具很容易安装homebrew使用brew install rename

于 2016-06-02T11:11:51.193 回答