0

我需要一个脚本来将 .png 替换为 @2x.png 如何对目录中的所有文件名执行此操作?

4

2 回答 2

3

假设 bash:

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

解释:

第 1 行:

for f in *.png; do

对于循环。遍历当前目录中与 glob 模式匹配的所有文件名,依次*.png设置$f为每个名称,并执行循环体。

第 2 行:

mv "$f" "${f%.png}@2x.png"

执行mv工具。第一个 arg 是 just "$f",这是您要重命名的文件。第二个参数是一个两步过程:

  1. ${f%.png}.png评估为去掉扩展名的文件名。

  2. 在剥离的文件名之后是@2x.png,它只是将该字符串附加到文件名上。

第 3 行:

done

终止 for 循环。

于 2012-11-06T23:04:48.283 回答
0

以下脚本应该适合您:

#!/bin/bash

for file in *.png
do
    filename=$(basename "$file")
    filename="${filename%.*}"
    filename="${filename}@2x.png"
    mv "$file" "$filename"
done
于 2012-11-06T23:12:56.900 回答