当文件名包含空格时,列出包含find的路径

时间:2013-06-03 15:57:44

标签: linux bash shell

我有这段代码

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

问题是如果文件名包含空格,则会在单独的行上打印

如何列出某些目录中的所有文件,包括包含空格的文件

3 个答案:

答案 0 :(得分:1)

我会使用while read

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

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

答案 1 :(得分:1)

这会产生您的示例的预期效果:

find /path/to/somewhere

也就是说,不需要围绕它包装for循环。

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

来做到这一点
find /path/to/somewhere -exec path/to/script.sh {} \;

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

答案 2 :(得分:-1)

这是解决方案

IFS=$'\n'
    for i in $(pwd)
    do
        echo $i
    done