Linux从文件名中删除最后5个字符

时间:2015-03-19 00:55:31

标签: linux

所以我在目录中有一堆不同的文件,我想要删除每个文件名中的最后5个字符。

例如,我在名为

的目录中有文件
README.md?dl=1
mod.cpp?dl=1
CHANGELOG_RU.txt?dl=1

他们需要被命名为

README.md
mod.cpp
CHANGELOG_RU.txt

那么我可以运行的Linux命令会对文件夹中子目录中的所有文件和文件执行此操作吗?

2 个答案:

答案 0 :(得分:1)

使用bash内置插件:

$ ls
README.md?dl=1  mod.cpp?dl=1
$ for file in *; do mv "$file" "${file:0:((${#file}-5))}"; done
$ ls
README.md   mod.cpp

启用globstar以触发递归行为。

答案 1 :(得分:0)

试试这个

shopt -s globstar
rename 's/.....$//' **

请注意,您需要bash版本4或更高版本才能使用globstar

Ubuntu 10和Fedora 12或更高版本应包含Bash 4或更高版本。