我在Linux系统中有一个庞大的文件夹。在其中,我有一个zip存档,其中包含几个shell脚本。我需要执行这些shell脚本,但挑战在于我没有对此文件夹的写入权限。此外,我也无法将其移动到其他目录,因为此文件的位置对其执行至关重要。它不适用于任何其他目录。
有没有办法从zip存档中执行shell脚本而不提取它?
答案 0 :(得分:2)
只需指定zip文件后的路径即可解压缩一个特定文件:
$ unzip c.zip a.sh
Archive: c.zip
extracting: a.sh
在此命令中,a.sh
是您要运行的脚本的路径。
您可以使用-p
参数将内容打印到标准输出:
$ unzip -p c.zip a.sh
#!/bin/sh
echo "this is a.sh; it is now $(date)"
最后,您可以将其传递给sh
以运行它:
$ unzip -p c.zip a.sh | sh
this is a.sh; it is now Tue Sep 26 11:02:28 BST 2017
请注意,相当多的shell脚本都假定bash
,因此您可能希望将其管道传输到bash
而不是sh
,具体取决于脚本。