看板 Linux 關於我們 聯絡資訊
請問下什麼指令 才可以在目錄下修改所有子目錄檔案的檔名 我把檔名沒注意 多打空白 一直想不到要用什麼 可以把所有檔案檔名的空白消掉 或空白改 _ 因為下一步是想把所有檔案中的字串 用grep 某字取代某字 但是grep對檔名中有空白的 完全沒輒... 它就不執行 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.48.240
tjjh89017:是不是要加跳脫字元'\' 02/12 20:55
kdjf:for f in *; do mv "$f" "${f// /_}"; done 02/12 21:25
kdjf:檔案太多的話,用rename or rename.ul比較快 02/12 21:26
JokePtt:我試過了 只能在目標目錄下改檔名 目標目錄下的眾多子目錄 02/13 12:05
JokePtt:的檔案的檔名就還是不動... 試一試好像grep可以全改 但是 02/13 12:06
JokePtt:它不吃有空白字元的檔名... 子目錄有數百個 裡面檔案上千~ 02/13 12:08
kdjf:還是bash: set -s globstar; for f in **; do .... 02/13 12:11
kdjf:重新看了一次你的問題,應該是呼叫grep的script沒寫好 02/13 12:23
kdjf:如果是用find | xargs 的話,改成 find -print0|xargs -0 看看 02/13 12:26
bobju:參考這一篇: #1EuUGZCG 02/13 12:54
JokePtt:可以了 3Q 02/13 13:05
JokePtt:在find | xargs rename的語法裡加-print0 -0就可以了 02/13 13:09