我正在尝试编写一个脚本,该脚本将目录作为命令行参数并遍历目录中的文件,将它们的扩展名更改为.bu
.
我认为这会奏效,但我得到了输出 '.bu' is not a target directory
#!/bin/bash
for f in $1; do
mv "$f".* .bu
done
Run Code Online (Sandbox Code Playgroud)
改为尝试(假设这$1
是一个文件夹):
for f in $1/*; do
mv "$f" "$f.bu"
done
Run Code Online (Sandbox Code Playgroud)
或者使用重命名实用程序:
rename -v 's/$/\.bu/' $1/*
Run Code Online (Sandbox Code Playgroud)
这些命令添加了扩展名。如果你想改变现有的扩展使用:
rename -v 's/\.[^\.]+$/\.bu/' $1/*
Run Code Online (Sandbox Code Playgroud)