gpt4 book ai didi

linux - 检查目录树中文件时间戳的快速方法

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:38 25 4
gpt4 key购买 nike

我需要每秒检查目录树中的文件结构,但我的脚本花费的时间太长,因为我怀疑在大型目录树中收集时间戳并根据其名称计算 base64 需要一些时间。

我如何收集树结构,然后将它们存储在数组中,并循环遍历每个文件,在数组中收集它们的时间戳,其中数组键是来自文件路径的密码?

稍后我将数组与旧版本进行比较,这增加了额外的浪费时间,所以我想提高效率。

shopt -s globstar dotglob
files=("$base"/**)


new() {
keys=("${!files_new[@]}")
for i in "${keys[@]::2}"
do
unset "files_new[$i]"
done

for file in "${files[@]}"
do
stamp=$(stat -c "%Y" "$file")
hash=$(echo "$file" | base64)

files_new[$hash]=$stamp
done
}

最佳答案

按照 Peter Cordes 的建议,我通过使用带有 -printf 输出的 Find 命令实现了更快的探测。循环从 3 秒变为大约 300 毫秒。

loop() {
while read string
do
stamp=${string%|*}
file=${string#*|}

files_new[$file]=$stamp
done < <(find "${base}" -name "*" -printf "%TD%TT|%p\n")
}

关于linux - 检查目录树中文件时间戳的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35264227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com