シェル - ファイルを解凍し、すべてのファイルの権限を設定する

シェル - ファイルを解凍し、すべてのファイルの権限を設定する

Windowsでzipファイルを作成しましたが、Linuxで解凍したいと思います。抽出されたファイルに対して644の権限を持ちたいです。ところで、抽出されたファイルは770で終わります。

頑張りました

umask 644
unzip update.zip -d . 

ただし、解凍されたファイルにはまだ770権限があります。

答え1

あなたのumaskモデルが間違っています。

# umask 644
# touch test1
# stat -c "%a %n" test1
22 test1

結果ファイルを取得する644にはumask 0022

# umask 0022
# touch test2
# stat -c "%a %n" test2
644 test2

からman umask

umask()は、呼び出しプロセスのファイルモード生成マスク(umask)をマスク&0777に設定し(つまり、マスクのファイル許可ビットのみを使用)、マスクの以前の値を返します。

関連情報