Heim >Backend-Entwicklung >Golang >Wie markiere ich Dateien in zip als ausführbare Unix-Datei?
Der PHP-Editor Xiaoxin zeigt Ihnen, wie Sie die Dateien in der ZIP-Datei als ausführbare Unix-Dateien markieren. In Unix-Systemen wird das ausführbare Attribut einer Datei durch die Berechtigungen der Datei bestimmt, daher müssen wir die Berechtigungen der Dateien in der ZIP-Datei ändern. Entpacken Sie zunächst die ZIP-Datei in den Zielordner. Verwenden Sie dann den Befehl chmod, um die Berechtigungen der Datei zu ändern. Packen Sie abschließend die geänderten Dateien erneut in eine ZIP-Datei. Mit diesem einfachen Schritt können Sie die Dateien in Ihrer ZIP-Datei als ausführbare Unix-Datei markieren.
Ich möchte eine Funktion wie diese schreiben:
func MarkFileAsExecutable(zipPath, filePath string) error
Es erhält den Pfad zur ZIP-Datei und den Dateipfad innerhalb der ZIP-Datei. Das Ziel besteht darin, mit dem Paket zip
die externen Attribute einer internen Datei zu ändern und sie als ausführbare Unix-Datei zu markieren.
Bitte beachten Sie, dass das Markieren der Datei als ausführbar vor dem Archivieren mit chmod +x
keine Lösung ist, da ich sie für die Arbeit unter Windows benötige. Daher muss ich das vorhandene Zip-Archiv entsprechend anpassen. chmod +x
归档文件之前将文件标记为可执行文件并不是一个解决方案,因为我需要它在 windows 上工作。因此,我需要相应地修改现有的 zip 存档。
您可以使用 zip
包。它提供了一个reader
和一个writer
Reader
und einen Writer
bereit. Sie öffnen das Zip-Archiv mit dem Reader. Anschließend durchlaufen Sie die Dateien im Archiv, ändern die Berechtigungen nach Bedarf und kopieren die Dateien in den Writer. 🎜
🎜Dies ist ein Minimalbeispiel ohne Fehlerprüfung: 🎜
package main import ( "archive/zip" "os" ) func main() { r, _ := zip.OpenReader("example.zip") defer r.Close() f, _ := os.Create("output.zip") defer f.Close() w := zip.NewWriter(f) defer w.Close() for _, f := range r.File { f.SetMode(0777) w.Copy(f) } }
Das obige ist der detaillierte Inhalt vonWie markiere ich Dateien in zip als ausführbare Unix-Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!