作者mystea (mystea)
看板Linux
標題[問題] 如何把所有 有whitespace的檔名 改成沒有的?
時間Tue Sep 30 03:25:56 2008
大家好,
我的目錄底下有很多如下的檔名:
\ \ 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
推 garyzyg:find . -type f | while read FILE; do mv "$FILE" \ 09/30 07:49
→ garyzyg:"$(tr -d \ <<< $FILE )"; done 09/30 07:50
→ mystea:謝謝. 請問<<<是甚麼意思呢? 09/30 13:31
推 PHP5:<<< here string (man bash) 09/30 14:50