我有一组看起来像2013/10/08/access.log.xz
的嵌套目录,我可以找到find . -name \*access.log.xz
所需的所有日志文件。我想将它们全部放在一个以20131008_access.log.xz
之类的日期为前缀的目录中。我甚至不知道从哪里开始。有什么建议吗?
答案 0 :(得分:3)
如果你有一个最近的bash或带有递归globbing的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' _ {} +