如何从目录名称中删除最终的“点”

时间:2013-05-09 11:18:56

标签: bash batch-rename

一个程序搞砸了我的目录,点了一个“。”在一些文件和目录名称的末尾。删除它们的最简单方法是什么?

我想过去掉最后一个字符,但并不是所有的文件/ dirs都有一个点。同时删除所有点是一个问题,这将使扩展无用。

我需要重命名以将name.of.the.file.ext.更改为name.of.the.file.ext并将name.of.the.dir.更改为name.of.the.dir

谢谢!

2 个答案:

答案 0 :(得分:2)

查看末尾带点的文件,尽可能重命名(即目标文件不存在)。

for file in *. ; do
    [[ -e ${file%.} ]] || mv "$file" "${file%.}"
done
echo Not renamed: *.

答案 1 :(得分:0)

您的计算机上可能有rename实用程序可以让您

rename 's/\.$//' *.

检查man rename