我喜欢创建tar文件以使用bash分发一些脚本。
对于每个脚本,都需要某些配置文件和库(或工具箱),
e.g。一个名为CheckTool.py的脚本需要运行Checks.ini,CheckToolbox.py和CommontToolbox.py,它们存储在我的硬盘上的特定文件夹中,需要以相同的方式复制到用户硬盘上。
我可以为每个脚本手动创建一个tarfile,但我希望它更简单。
为此我有想法为特定脚本定义所有需要的文件及其路径的列表,并在bashscript中读取,这将创建tar文件。
我开始时:
#!/bin/bash
while read line
do
echo "$line"
done < $1
正在阅读文件和路径。在我的例子中,这些行是:
./ CheckTools / CheckMesh.bs
./ CONFIGS / CheckMesh.ini
./工具箱/ CommonToolbox.bs
./工具箱/ CheckToolbox.bs
我的问题是如何使用bash组织数据以使用指定的文件生成tar文件? 或者是否有人有更好的想法?
答案 0 :(得分:1)
不需要复杂的脚本,使用tar的-T选项。其中列出的每个文件都将添加到tar文件中:
来自文件的-T, - 文件 获取要从FILE中提取或创建的名称
所以你的脚本变成了:
#!/bin/bash
tar -cvpf something.tar -T listoffiles.txt
listoffiles.txt格式非常简单,每行一个文件。您可能希望提供完整路径以确保获得正确的文件:
./ CheckTools / CheckMesh.bs
./Configs/CheckMesh.ini
./Toolboxes/CommonToolbox.bs
./Toolboxes/CheckToolbox.bs
你可以根据需要在脚本中添加tar命令,或者你可以在列表文件上循环,从那时起,你的想象力是极限!