1

I have this code

for i in $(find pwd)
do
    echo $i
done

the problem is if the file name contains spaces, it prints on a separate line

how can I list all of the files in some directory including files that contains spaces

4

3 回答 3

1

我会用while read这个。

find . | while read i; do echo $i; done;

编辑:
或者,你可以这样做ls -a1

于 2013-06-03T16:20:19.700 回答
1

这将具有您的示例的预期效果:

find /path/to/somewhere

也就是说,不需要在它周围包裹一个 for 循环。

但我猜你想要的不仅仅是回声。也许为每个文件调用一个脚本?你可以这样做:

find /path/to/somewhere -exec path/to/script.sh {} \;

where{}将为找到的每个文件名替换。

于 2013-06-03T17:07:21.283 回答
-1

这是解决方案

IFS=$'\n'
    for i in $(pwd)
    do
        echo $i
    done
于 2013-06-03T16:03:12.027 回答