2016-05-17 41 views
2

我有一個包含一堆文件的文件夾。我想重新命名所有的文件夾或文件來替換。有空間通過了文件名Bash重命名文件從「test.file.1」到「測試文件1」

我試圖使用重命名工具,但它吐出來的問題

rename -v ’s/\./\ /’ * 

Unrecognized character \xE2; marked by <-- HERE after { 
#line 1 <-- HERE near column 15 at (user-supplied code). 

rename '.' ' '我得到

syntax error at (user-supplied code), near "." 
+2

你爲什麼要這麼做?名稱中包含空格的文件更難以管理。 –

+0

其便於在Windows共享文件夾上閱讀 –

+0

好的。 ''''或'_'是否是一個選項? (如果你需要空格,你需要空格。) –

回答

0

Wiith發現你可以這樣做:

find . -type f -name '*.*' -exec bash -c 'n="${0##*/}"; mv "$0" "${0%/*}/${n//./ }"' {} \; 

如果您想使用專門用於文件重命名的工具,那麼

隨着rename

rename 's/\./ /g' * 

我有我自己的工具,我使用的文件/文件夾重命名:rnm

rnm -rs '/\./ /g' * 
+0

@MichaelBurns:我重寫了find命令,並且還添加了其他方法,包括我自己的文件重命名工具。 – Jahid