现在,我有一个相当重要的解决方案:
FILES=" "
for f in `find $DIR -type f`; do FILES=$FILES$f" "; done
(请注意,我确实想要在每个之间留一个空格)
有更好的方法吗?
答案 0 :(得分:3)
使用命令替换:
FILES=$(find "$DIR" -type f)
但要小心这一点。使用空格作为文件名之间的分隔符意味着您无法处理包含空格的文件名。因此,这仅适用于您知道文件名格式简单的上下文中。对于更一般的情况,您应该使用数组。
答案 1 :(得分:3)
假设您使用的是bash
的最新版本,则可以完全取消find
并使用数组。
shopt -s globstar
for f in **/*; do
[[ -f $f ]] && FILES+=("$f")
done