一个程序搞砸了我的目录,把一个点“。”。在某些文件和目录名称的末尾。删除它们的最简单方法是什么?如何从目录名称中删除最后的“点”
我曾想过删除最后一个字符,但并非所有的文件/目录都有一个点。也删除所有的点是一个问题,这将使扩展名无用。
我需要的是改变name.of.the.file.ext.
到name.of.the.file.ext
和name.of.the.dir.
到name.of.the.dir
由于重命名!
一个程序搞砸了我的目录,把一个点“。”。在某些文件和目录名称的末尾。删除它们的最简单方法是什么?如何从目录名称中删除最后的“点”
我曾想过删除最后一个字符,但并非所有的文件/目录都有一个点。也删除所有的点是一个问题,这将使扩展名无用。
我需要的是改变name.of.the.file.ext.
到name.of.the.file.ext
和name.of.the.dir.
到name.of.the.dir
由于重命名!
用结尾处的点翻遍文件,如果可能的话重命名(即目标文件不存在)。
for file in *. ; do
[[ -e ${file%.} ]] || mv "$file" "${file%.}"
done
echo Not renamed: *.
如果用户必须下载到子目录中:'shopt -s globstar;用于**/*。 ...'。另外,为什么'-e'测试? '* .'是否会返回不存在的文件? – 2013-05-09 13:02:23
@glennjackman:不,它测试目标以便不覆盖它。 – choroba 2013-05-09 13:09:01
对,我需要仔细阅读! – 2013-05-09 13:14:10
有可能是一个rename
效用你的机器上,这将让你做
rename 's/\.$//' *.
检查man rename
只写扫描小圆点,然后丢弃的文件名,并检查脚本他们如果有必要。你应该使用命令来重命名文件/目录 – xQuare 2013-05-09 11:25:11