移动文件 shell 脚本

ign*_*ius 1 shell-script rename mv

我有一个 shell 脚本 ren.sh

#!/bin/bash
/usr/bin/mv /home/imp/imp/msgs/$1.PK1 /home/imp/imp/msgs/$1.BRD
/usr/bin/mv /home/imp/imp/msgs/$1.PK2 /home/imp/imp/msgs/$1.MIX
Run Code Online (Sandbox Code Playgroud)

它工作正常,但一次只能移动 2 个文件(*.PK2*.PK1)。我希望它将所有现有*.PK1*.PK2文件移动到*.MIX*.BRD文件

这可能吗?

Kus*_*nda 5

是的。

for name in /home/imp/imp/msgs/*.PK1; do
    mv "$name" "${name%.PK1}.BRD"
done

for name in /home/imp/imp/msgs/*.PK2; do
    mv "$name" "${name%.PK2}.MIX"
done
Run Code Online (Sandbox Code Playgroud)

第一个循环将遍历下的所有*.PK1文件/home/imp/imp/msgs并将文件名后缀替换为.BRD.

第二个循环对另一组文件执行类似的操作。

变量扩展${name%.PK2}.MIX将从.PK2存储在变量中的值的末尾删除字符串name,然后将该字符串附加.MIX到结果的末尾。