2013-05-09 63 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

相關問題