web-dev-qa-db-ja.com

Zip / 7z / rarでのファイル許可?

アプリケーションをLinux用にパッケージ化したいのですが、Zip/tar.gz/7z/rarを使用してWindowsで圧縮を行います。

Windowsで圧縮を行うため、Linuxでパッケージを抽出すると、ファイルのアクセス許可がリセットされます。

問題は、tar.gzのみが実行可能なファイルを抽出できることであり、他の形式(Zip/7z/rar)では抽出できません(ファイルのアクセス許可は644にリセットされます)。

だから私の質問は、権限を755にリセットしながらZip/7z/rarを使用してファイルを圧縮する方法です。

7
Zhongshu

私の知る限り、Zipとrarはアクセス許可を保存しませんが、7zもWindowsでは保存しないと思います。

したがって、これらの形式で圧縮している間は、実際に許可を「設定」することはできません。 Linuxターゲットにはtarベースのアーカイブを使用することをお勧めします。 Zipまたはrarがどうしても必要な場合は、解凍後にchmodを呼び出すスクリプトの使用を検討してください。

0
Dave Vogt

Zipは* nix権限をサポートしていますが、Windowsにはそれらを任意に設定できるツールはありません。 Pythonスクリプト を記述して、それらを設定することは可能です。

Dockerを使用して、Windowsのアクセス許可を含むファイルを圧縮できます

docker run -it --rm  -v  c:/Users/john/some/where:/data Alpine
# within container do
apk add Zip && cd /data &&  Zip -r archive.Zip dir-to-be-zipped
1
Holger Brandl