2017-09-26 124 views
0

我在Linux系統中有一個巨大的文件夾。在它裏面,我有一個封裝了幾個shell腳本的zip壓縮文件。我需要執行這些shell腳本,但挑戰在於我沒有對此文件夾的寫入權限。另外,我也無法將它移動到其他目錄,因爲此文件的位置對其執行至關重要。它不會在任何其他目錄中工作。在zip存檔中執行shell腳本

有沒有辦法從zip壓縮文件內執行shell腳本而不解壓?

回答

2

您可以通過zip文件後,只需指定路徑解壓一個特定的文件:

$ unzip c.zip a.sh 
Archive: c.zip 
extracting: a.sh 

在此命令a.sh是路徑要運行該腳本。

可以打印內容與-p參數到stdout:

$ 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,具體取決於腳本。