【问题标题】:Execute shell script in a zip archive在 zip 存档中执行 shell 脚本
【发布时间】:2017-09-26 09:56:59
【问题描述】:

我在 Linux 系统中有一个巨大的文件夹。在其中,我有一个包含几个 shell 脚本的 zip 存档。我需要执行这些 shell 脚本,但挑战是我没有对该文件夹的写入权限。此外,我也无法将其移动到其他目录,因为该文件的位置对其执行至关重要。它不会在任何其他目录中工作。

有什么方法可以从 zip 存档中执行 shell 脚本而不提取它?

【问题讨论】:

    标签: shell unix sh


    【解决方案1】:

    您可以通过指定压缩文件后的路径来解压缩一个特定的文件:

    $ 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,具体取决于脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多