首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让shell脚本在执行时解压多个文件?

如何让shell脚本在执行时解压多个文件?
EN

Stack Overflow用户
提问于 2013-05-10 02:46:57
回答 3查看 426关注 0票数 1

我希望在我的shell脚本文件中有几个文本文件,一旦脚本执行,这些文件就会解压到一个目录中。我一直在使用“here-doc”解决方案,如下所示:

代码语言:javascript
复制
cat>myTextFile.txt<<'EOF'
My Content
EOF

然而,我的shell脚本变得越来越大,并且开始需要越来越多的文件进行解压。基本上,我正在制作一个计算管道,并希望将其作为单个shell脚本分发,但一旦运行,它需要展开到多个目录/子目录/文件中。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-10 02:54:44

你可以在你的脚本中嵌入一个超编码的tar文件,然后像这样解压它:

代码语言:javascript
复制
tar xf - <<EOF
The uuencoded tarball
EOF

您可以这样对数据进行编码:

代码语言:javascript
复制
$ tar cf - src_tree | compress | uuencode src_tree.tar.Z >your_here_doc

然后将文件your_here_doc粘贴到'The uuencoded tarball'行现在所在的位置,如下所示:

代码语言:javascript
复制
$ (echo tar cf - '<<EOF'; cat your_here_doc; echo EOF) >self_expanding_files.sh
票数 2
EN

Stack Overflow用户

发布于 2013-05-10 02:54:19

如何创建一个tar归档文件,然后将其作为二进制有效负载附加到您的脚本中。在这里可以找到一个非常好的教程:http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts

其他选项包括像makeself这样的脚本,它们可以为您完成所有工作,从而使构建更容易自动化。

票数 3
EN

Stack Overflow用户

发布于 2013-05-10 02:51:12

您可以组合使用findcp命令吗?像这样的东西

find /path/to/your/files -exec cp {} /destination/path \;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16468915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档