[問題] 如何把所有 有whitespace的檔名 改成沒有的?

看板Linux作者 (mystea)時間17年前 (2008/09/30 03:25), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
大家好, 我的目錄底下有很多如下的檔名: \ \ 1 \ \ 2 \ 10 \ 20 等等. 我想把他改成 1 2 10 20 請問有沒有什麼簡單的方法? 我目前的作法是 for FILE in $(find . -type f); do mv "$FILE $(echo $FILE | tr -d '\ ')"; done 但出現的結果是: mv ./ ./ mv 1 1 而不是我想要的 mv ./\ \ 1 ./1 我猜測是因為$(find . -type f)裡裝的是 ./ 1 ./ 10 ./ 2 ./ 20 (這是echo $(find . -type f)的結果) 也就是說檔名的空白變成分隔字元了? 我應該怎麼辦? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.97.69.135

09/30 07:49, , 1F
find . -type f | while read FILE; do mv "$FILE" \
09/30 07:49, 1F

09/30 07:50, , 2F
"$(tr -d \ <<< $FILE )"; done
09/30 07:50, 2F

09/30 13:31, , 3F
謝謝. 請問<<<是甚麼意思呢?
09/30 13:31, 3F

09/30 14:50, , 4F
<<< here string (man bash)
09/30 14:50, 4F
文章代碼(AID): #18uIl5rB (Linux)
文章代碼(AID): #18uIl5rB (Linux)