gpt4 book ai didi

bash - 按日期将嵌套文件结构更改为文件名

转载 作者:行者123 更新时间:2023-12-04 04:38:44 32 4
gpt4 key购买 nike

我有一组嵌套的目录,看起来像 2013/10/08/access.log.xz , 我可以用 find . -name \*access.log.xz 找到我想要的所有日志文件.我想将它们全部放在一个以日期为前缀的目录中,例如 20131008_access.log.xz .我什至不知道从哪里开始。有什么建议吗?

最佳答案

如果您有最近的 bash 或带有递归通配符的 shell,您可以执行以下操作:

shopt -s globstar
for logfile in **/*access.log.xz; do
IFS=/ read year month day file <<< "$logfile"
mv "$logfile" "${year}${month}${day}_${file}"
done

如果你有一个较旧的 bash,你可以模拟效果,但它更难阅读:
find . -name '*access.log.xz' -exec bash -c 'for logfile; do
IFS=/ read dot year month day file <<< "$logfile"
mv "$logfile" "${year}${month}${day}_${file}"
done' _ {} +

关于bash - 按日期将嵌套文件结构更改为文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254489/

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