如何使用与空白空间查找?

这是一件奇怪的事情。

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 \"{}\" \;