查找多个目录下的日志文件并使用自己的名称和日期压缩每个文件

查找多个目录下的日志文件并使用自己的名称和日期压缩每个文件

我有如下所示的多个目录,我想就地压缩每个文件。

/var/dir1/logs/logfile.log
/var/dir2/logs/logfile.log
/var/dir3/logs/logfile.log

我想将findtar结合起来,但我不知道如何使用文件名和路径作为变量。

此命令将所有文件压缩到一个文件中:

find /dir/to/search/ -name "*.log" -exec tar -rvf out.tar {} \;

答案1

尝试使用xargs

find *.log | xargs -I input zip input.zip input

请注意,这是 xargs 的 Mac 版本。在 Ubuntu 上,其行为可能有所不同,但希望与之相近的版本能够正常工作。

xargs通过获取输入的每一行(通过 stdin)并对其运行一些命令来工作。这-I input意味着对于每一行,使用输入行而不是字符串input。因此在本例中,它会对zip每个文件运行命令。

相关内容