将多个文件重命名为其后缀

将多个文件重命名为其后缀

我需要一种方法来重命名几个包含空格的文件。我有:

>ls
Garbage Foo1.txt
Garbage Foo2.txt
Garbage Foo3.txt
Garbage Foo4.txt
...

我需要:

Foo1.txt
Foo2.txt
Foo3.txt
Foo4.txt
...

有什么想法如何做到这一点?

答案1

随着perl的重命名:

rename -n 's/.*\s+//' *.txt

删除-n开关才能真正做到这一点。 ( -n== 试运行)

答案2

rename这是util-linux 套件中的实用程序能够胜任这项任务的少数情况之一。大多数发行版将此实用程序作为rename;在 Debian、Ubuntu 及其衍生产品上,rename一个不同的、更强大的实用程序util-linux 实用程序称为rename.ul.

rename 'Garbage ' '' *.txt

完全便携式的解决方案是

for x in *.txt; do
  mv -- "$x" "${x#'Garbage '}"
done

答案3

只需使用 bash:

for file in ./*.txt; do mv -- "$file" "${file/Garbage /}"; done

相关内容