指定された権限でファイルとフォルダを抽出する

指定された権限でファイルとフォルダを抽出する

Windows で多数のサブフォルダーとファイルを含むフォルダーを 7zip で圧縮し、VPS にアップロードして、次のコマンドを実行します。

tar -xvzf file.tar.gz

すると、解凍されたすべてのファイルとフォルダーの権限は 777 になります。フォルダーの権限を 755、ファイルの権限を 644 にするにはどうすればよいでしょうか?

答え1

tar(1)通常ユーザーとして実行している場合は、umaskデフォルトで が適用されます。tar(1)として実行している場合は、を尊重するように求めるコマンド ライン オプションをroot指定できます。--no-same-permissionstar(1)umask

したがって、これを通常のユーザーとして実行します。

umask 022
tar zxvf file.tar.gz

または、次のように実行しますroot:

umask 022
tar zxvf file.tar.gz --no-same-permissions

、、または をumask 022挿入することをお勧めします。(起動ファイルの詳細については、man ページを参照してください。複雑です。)~/.bashrc~/.bash_profile~/.profilebash(1)

の詳細については、シェルのマニュアル ページ、システム コールのマニュアル ページ、またはPOSIX 提供のユーティリティのマニュアル ページ (インストールされている場合)umaskを参照してください。umask(2)umask(1posix)manpages-posix

答え2

ディレクトリのルートで次のコマンドを実行して、ディレクトリとファイルに必要な権限を設定します。

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

閉じ括弧とバックスラッシュの間のスペースに注意してください

答え3

大文字のXを使用すると、chmodディレクトリに対してのみ実行権限を設定できます。つまり、

chmod -R ugo+X .

答え4

見つけてください。-type f -exec chmod 644 {} \;

関連情報