使用xargs重命名后如何将文件传递给tar.gz?

αғsнιη

我试图重命名日志文件并将tar文件命名为“ tar.gz”,但我以下面的命令结尾,但是它没有从STDIN(mv命令的输出)中获取重命名的文件名,并且导致tar命令创建空文件文件,

find -type f -name "logs*" -exec bash -c ' \
     mv "$0" "$0_$(date -r "$0" +"%Y%m%d%H%M%S")"| \
     xargs tar -czf "$0_$(date -r "$0" +"%Y%m%d%H%M%S")".tar.gz --null -T - 
' "{}" \;

如何使用上述命令的修订版来重命名重命名的文件,或者还有其他方法(在bash shell中)?谢谢

Arronical

如果要为.tar.gzfind收集的每个日志文件创建一个单独的文件,则无需使用xargs您可以将每个文件的带日期的附加名称保存到变量(在本例中为f),然后在tar命令中重新使用新名称这还将使重命名的文件保留在原位。

find . -type f -iname "log*" -exec bash -c ' \
    f="${0}_$(date -r "$0" +"%Y%m%d%H%M%S")"; \
    mv "$0" "$f" && tar -czf "${f}.tar.gz" "$f" \
' "{}" \;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档