請問在目錄下修改所有子目錄檔案的檔名? - Linux

Table of Contents


請問下什麼指令 才可以在目錄下修改所有子目錄檔案的檔名

我把檔名沒注意 多打空白

一直想不到要用什麼 可以把所有檔案檔名的空白消掉
或空白改 _

因為下一步是想把所有檔案中的字串 用grep 某字取代某字
但是grep對檔名中有空白的 完全沒輒... 它就不執行


--

All Comments

Caroline avatarCaroline2012-02-15
是不是要加跳脫字元'\'
Hedy avatarHedy2012-02-18
for f in *; do mv "$f" "${f// /_}"; done
Regina avatarRegina2012-02-21
檔案太多的話,用rename or rename.ul比較快
Daniel avatarDaniel2012-02-24
我試過了 只能在目標目錄下改檔名 目標目錄下的眾多子目錄
Annie avatarAnnie2012-02-27
的檔案的檔名就還是不動... 試一試好像grep可以全改 但是
John avatarJohn2012-03-01
它不吃有空白字元的檔名... 子目錄有數百個 裡面檔案上千~
Tom avatarTom2012-03-02
還是bash: set -s globstar; for f in **; do ....
Lucy avatarLucy2012-03-03
重新看了一次你的問題,應該是呼叫grep的script沒寫好
Quanna avatarQuanna2012-03-04
如果是用find | xargs 的話,改成 find -print0|xargs -0 看看
Skylar Davis avatarSkylar Davis2012-03-06
參考這一篇: #1EuUGZCG
Bennie avatarBennie2012-03-08
可以了 3Q
Poppy avatarPoppy2012-03-11
在find | xargs rename的語法裡加-print0 -0就可以了