一個程序搞砸了我的目錄,把一個點「。」。在某些文件和目錄名稱的末尾。刪除它們的最簡單方法是什麼?如何從目錄名稱中刪除最後的「點」
我曾想過刪除最後一個字符,但並非所有的文件/目錄都有一個點。也刪除所有的點是一個問題,這將使擴展名無用。
我需要的是改變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