是否可以做这样的事情:
inputNum="$1"
files=($(find /dir/to/check -mtime $inputNum))
基本上,我的想法是,我可以使用输入参数来设置查找文件的天数并将其设置为变量数组。我不确定在 bash 中可读的语法。
答案1
的输出find
不能可靠地进行后处理,除非您使用-print0
代替-print
(-print
在未指定操作时隐含)。
要对输出进行后处理find -print0
并将文件路径存储在数组中:
对于 bash4.4+:
readarray -td '' files < <(find /dir/to/check -mtime "$inputNum" -print0)
对于旧版本:
files=()
while IFS= read -rd '' file; do
files=("${files[@]}" "$file")
done < <(find /dir/to/check -mtime "$inputNum" -print0)
更一般地说,您需要阅读以下建议:为什么循环查找的输出是不好的做法?