这有点奇怪。
mkdir -p "1/2 3/4"
touch 1/2\ 3/4/file.jpg
for f in $(find . -type f -name \*jpg); do echo "${f}"; done
返回
./1/2
3/4/file.jpg
而不是
./1/2 3/4/file.jpg
如何保留find
保留空格,以便文件路径正确?
答案 0 :(得分:9)
您可以使用-print0
选项和xargs -0
。例如:
find . -type f -name \*.jpg -print0 | xargs -0 echo
无论文件名的内容如何(即使换行也能正确处理),这都可以。
答案 1 :(得分:3)
它可以通过多种方式完成,但我发现以这种方式做得更好:
find . -type f -name \*.jpg | while read i ; do echo "Procesing $i..." ; done
答案 2 :(得分:2)
看到之间的区别:
find . -type f -name \*.jpg -exec echo {} \;
和
find . -type f -name \*.jpg -exec echo \"{}\" \;