首页 > 解决方案 > 创建一个空的 tar 文件,然后将其名称存储在变量中

问题描述

我正在编写一个 shell 脚本,其中将创建一个包含今天日期和时间的 tar 文件。

tar -zvcf "log_grabber$(date '+%y-%m-%d_%H%M').tar.gz" --files-from /dev/null

现在,在运行 find 命令后向此 tar 文件添加更多文件。如何获取 tar 文件的名称并在 find 命令的输出中使用它?

find . -type f -name 'local*' -newermt "$user_date" -exec tar -rvf <variable tar file> {} \;

任何帮助都会非常有用。

标签: linuxbashshell

解决方案


代替

tar -zvcf "log_grabber$(date '+%y-%m-%d_%H%M').tar.gz" --files-from /dev/null

首先创建一个具有名称的变量并使用它:

name="log_grabber$(date '+%y-%m-%d_%H%M').tar.gz"    
tar -zvcf "$name" --files-from /dev/null

进而:

find . -type f -name 'local*' -newermt "$user_date" -exec tar -rvf "$name" {} +

请注意,我更改\;为在一次调用+tar获取多个文件,而不是tar每个文件一次调用。


推荐阅读