我有这段代码
for i in $(find pwd)
do
echo $i
done
问题是如果文件名包含空格,则会在单独的行上打印
如何列出某些目录中的所有文件,包括包含空格的文件
答案 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