目前,我正在尝试解析目录中的所有文件。我有一个查找功能,但它似乎无法将带有空格的文件目录解析为循环。在这里,"$DIR"
是我希望搜索的目录。有没有人知道我如何修改它才能工作?谢谢。
for file in $(find "$DIR" -type f)
do
echo "$file"
done
目前,我正在尝试解析目录中的所有文件。我有一个查找功能,但它似乎无法将带有空格的文件目录解析为循环。在这里,"$DIR"
是我希望搜索的目录。有没有人知道我如何修改它才能工作?谢谢。
for file in $(find "$DIR" -type f)
do
echo "$file"
done
你不需要
for
循环这个。将默认输出所有找到的对象。
您可以通过以下方式明确说明:
如果您真的想遍历这些,请使用空分隔符和
xargs
:或者
find
自己的-exec
:find ... | xargs ...
并且find ... -exec ...
都是比这更好的选择:要使用 shell 循环正确迭代查找结果,我们必须使用while read
循环:很多东西在那里解压:
IFS= read -r line
. 这允许将任意空格和反斜杠读入变量。read -d ''
使用空字节(由 生成-print0
)作为行尾字符而不是换行符。您不应该出于不应该解析的相同原因解析输出
find
ls
尝试使用
find
/exec
代替: