2013-05-09 100 views
0

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

我曾想过删除最后一个字符,但并非所有的文件/目录都有一个点。也删除所有的点是一个问题,这将使扩展名无用。

我需要的是改变name.of.the.file.ext.name.of.the.file.extname.of.the.dir.name.of.the.dir

由于重命名!

+0

只写扫描小圆点,然后丢弃的文件名,并检查脚本他们如果有必要。你应该使用命令来重命名文件/目录 – xQuare 2013-05-09 11:25:11

回答

2

用结尾处的点翻遍文件,如果可能的话重命名(即目标文件不存在)。

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

如果用户必须下载到子目录中:'shopt -s globstar;用于**/*。 ...'。另外,为什么'-e'测试? '* .'是否会返回不存在的文件? – 2013-05-09 13:02:23

+0

@glennjackman:不,它测试目标以便不覆盖它。 – choroba 2013-05-09 13:09:01

+0

对,我需要仔细阅读! – 2013-05-09 13:14:10

0

有可能是一个rename效用你的机器上,这将让你做

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

检查man rename

相关问题