作者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
1F:推 garyzyg:find . -type f | while read FILE; do mv "$FILE" \ 09/30 07:49
2F:→ garyzyg:"$(tr -d \ <<< $FILE )"; done 09/30 07:50
3F:→ mystea:谢谢. 请问<<<是甚麽意思呢? 09/30 13:31
4F:推 PHP5:<<< here string (man bash) 09/30 14:50