如何处理文件名以bash中的空格开头?

时间:2013-11-13 08:14:00

标签: bash

通常,示例显示如下用法:

for i in $(ls); do echo ${i}; done

但是如果有一个名为“screw”的文件(或目录),则上面的行会给出错误的结果。

如何解决?

3 个答案:

答案 0 :(得分:7)

不,请不要使用/解析ls的输出。像这样使用它:

for i in *; do echo "${i}"; done

或者你可以使用printf(感谢@ruakh):

printf '%s\n' *

答案 1 :(得分:0)

IFS="$(echo -e "\b\r")";
for f in $(ls); do
    echo "$f";
done

如果你被迫坚持解析ls输出(你不应该)

答案 2 :(得分:0)

您始终可以使用find with print

find ./ -print | xargs echo