我希望在我的shell脚本文件中有几个文本文件,一旦脚本执行,这些文件就会解压到一个目录中。我一直在使用“here-doc”解决方案,如下所示:
cat>myTextFile.txt<<'EOF'
My Content
EOF然而,我的shell脚本变得越来越大,并且开始需要越来越多的文件进行解压。基本上,我正在制作一个计算管道,并希望将其作为单个shell脚本分发,但一旦运行,它需要展开到多个目录/子目录/文件中。
谢谢!
发布于 2013-05-10 02:54:44
你可以在你的脚本中嵌入一个超编码的tar文件,然后像这样解压它:
tar xf - <<EOF
The uuencoded tarball
EOF您可以这样对数据进行编码:
$ tar cf - src_tree | compress | uuencode src_tree.tar.Z >your_here_doc然后将文件your_here_doc粘贴到'The uuencoded tarball'行现在所在的位置,如下所示:
$ (echo tar cf - '<<EOF'; cat your_here_doc; echo EOF) >self_expanding_files.sh发布于 2013-05-10 02:54:19
如何创建一个tar归档文件,然后将其作为二进制有效负载附加到您的脚本中。在这里可以找到一个非常好的教程:http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts
其他选项包括像makeself这样的脚本,它们可以为您完成所有工作,从而使构建更容易自动化。
发布于 2013-05-10 02:51:12
您可以组合使用find和cp命令吗?像这样的东西
find /path/to/your/files -exec cp {} /destination/path \;
https://stackoverflow.com/questions/16468915
复制相似问题