我需要一种方法来重命名几个包含空格的文件。我有:
>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