从 /var/log 中提取和归档以 .log 结尾的文件时删除路径名

从 /var/log 中提取和归档以 .log 结尾的文件时删除路径名

所以我是 Linux 新手,我编写了一个小脚本,该脚本应该将 /var/log 中以 .log 结尾的内容归档到名为 archive 的新目录中名为 log.tar 的 tar 文件。然后假设列出 tar 文件的内容,然后将其提取到一个名为 backup 的新文件中。

#!/bin/bash
mkdir archive
mkdir backup
cd archive
tar -cvf log.tar /var/log/*.log
tar -tf tar.log
tar -xf tar.log -C ~/backup

所以当我运行脚本时我得到这个输出。

tar: Removing leading `/' from member names
/var/log/alternatives.log
/var/log/auth.log
/var/log/bootstrap.log
/var/log/dpkg.log
/var/log/fontconfig.log
/var/log/gpu-manager.log
/var/log/kern.log
/var/log/vboxadd-install.log
/var/log/vboxadd-setup.log
/var/log/Xorg.0.log
var/log/alternatives.log
var/log/auth.log
var/log/bootstrap.log
var/log/dpkg.log
var/log/fontconfig.log
var/log/gpu-manager.log
var/log/kern.log
var/log/vboxadd-install.log
var/log/vboxadd-setup.log
var/log/Xorg.0.log

所以我想知道是否可以在归档时删除 /var/log/ 部分行,因此我在列出 tar 文件中的内容时得到了这一点。

alternatives.log
auth.log
bootstrap.log
cron.log
dpkg.log
kern.log
mail.log

当我在备份文件中执行 ls 时,我会看到 var 目录,当我在 var 目录中执行 las 并最终在日志目录中时,我会看到日志文件。那么如何在没有 /var/log/ 路径名和目录的情况下提取呢?

答案1

您只需在 tar 命令中位于目录 /var/log 中

tar cf /path/archives/yourfile.tar *.log

那么你的文件没有路径,并且你的目标文件位于你的存档目录中。

只需修改此配置中的脚本即可学习和培训自己的脚本编写。

相关内容