这是一件奇怪的事情。
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
保留空格,以便文件path正确?
这可以通过几种方式完成,但是我发现这样做更好:
find . -type f -name \*.jpg | while read i ; do echo "Procesing $i..." ; done
您可以使用-print0
选项和xargs -0
。 例如:
find . -type f -name \*.jpg -print0 | xargs -0 echo
无论文件名是什么内容(即使换行符都能正确处理),这都是可行的。
看到区别:
find . -type f -name \*.jpg -exec echo {} \;
和:
find . -type f -name \*.jpg -exec echo \"{}\" \;