linux - 创建一个空的 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> {} \;
任何帮助都会非常有用。
解决方案
代替
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
每个文件一次调用。
推荐阅读
- mongodb - 引导失败:5:在 macOS Big Sur 版本 11.5.2 上运行任何服务时出现输入/输出错误
- python-3.x - 将 Python 文件中的变量引用到 .kv 文件
- reactjs - 将许多道具传递给不同的子组件会影响我的应用程序的性能吗?
- firebase - 在电子邮件密码身份验证中进行额外的自定义检查 (Flutter - Firebase)
- angularjs - 安装 Angular 语言服务后,与节点模块有关的新文件开始出现在我的未暂存存储库中
- common-lisp - 为自定义 C 库分发 CFFI 包装器
- javascript - 是在 catch 中抛出错误还是返回被拒绝的 promise 以在异步函数中冒泡更好?
- flutter - InitialValue 在 Multi-Select 包 Flutter 中无法正常工作
- c# - “属性”或“Assemblyinfo.cs”文件/文件夹在哪里
- c# - SpotLight 应在 Xamarin 中自动启动