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
我会用while read
这个。
find . | while read i; do echo $i; done;
编辑:
或者,你可以这样做ls -a1
这将具有您的示例的预期效果:
find /path/to/somewhere
也就是说,不需要在它周围包裹一个 for 循环。
但我猜你想要的不仅仅是回声。也许为每个文件调用一个脚本?你可以这样做:
find /path/to/somewhere -exec path/to/script.sh {} \;
where{}
将为找到的每个文件名替换。
这是解决方案
IFS=$'\n'
for i in $(pwd)
do
echo $i
done