所以我在目录中有一堆不同的文件,我想要删除每个文件名中的最后5个字符。
例如,我在名为
的目录中有文件README.md?dl=1
mod.cpp?dl=1
CHANGELOG_RU.txt?dl=1
他们需要被命名为
README.md
mod.cpp
CHANGELOG_RU.txt
那么我可以运行的Linux命令会对文件夹中子目录中的所有文件和文件执行此操作吗?
答案 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或更高版本。