如何为linux mint本地文件夹中的所有文件添加后缀?

如何为linux mint本地文件夹中的所有文件添加后缀?

我试过这个:

#!/bin/bash
# addsuffix <suffix> <files>

suffix=$1
shift
for f in "$@"
do
  extension=${f##*.}
  if [ -z $extension ]; then
    mv "$f" "$f$suffix"
  else
    mv "$f" "${f%.$extension}$suffix.$extension"
  fi
done

通过此命令,其中 add_suffix 是前一个文件的名称

sh add_suffix

但我收到错误:

add_suffix: 5: shift: can't shift that many

怎么了?

答案1

我正在回答主题中的问题,而不是帖子末尾关于 shell 脚本出了什么问题的问题。

如果您愿意在 shell 脚本之外执行此操作,则 mmv 命令即可执行此操作。

me@elman:~/test$ ls
file1  file1.out  file2
me@elman:~/test$ mmv -n "*" "#1.newsuffix"
file1 -> file1.newsuffix
file1.out -> file1.out.newsuffix
file2 -> file2.newsuffix

'-n' 告诉 mmv 显示要做什么,但不真正执行(空运行)。第二个参数(“*”)告诉 mmv 要更改哪些文件(源)。您可以有更复杂的匹配模式,但此命令应该获取目录中的所有非隐藏文件。在最后一个参数“#1.newsuffix”(目标)中,#1 引用源规范中的第一个通配符匹配并将其复制到新名称。

删除“-n”以真正进行更改。手册页非常好。

相关内容