Windowsで7Zipを使用して、多くのサブフォルダーとファイルを含むフォルダーをパックし、VPSにアップロードして、次のコマンドを実行します。
tar -xvzf file.tar.gz
次に、すべての解凍されたファイルとフォルダーに777のアクセス許可があります。フォルダーに755とファイル644のアクセス許可を付与するには、どうすれば取得できますか?
tar(1)
を通常のユーザーとして実行している場合は、デフォルトでumask
が適用されます。 tar(1)
をroot
として実行している場合は、_--no-same-permissions
_コマンドラインオプションを指定して、tar(1)
にumask
を尊重するように要求できます。
だから:これを通常のユーザーとして実行する:
_umask 022
tar zxvf file.tar.gz
_
または、これをroot
として実行します。
_umask 022
tar zxvf file.tar.gz --no-same-permissions
_
_umask 022
_を_~/.bashrc
_、_~/.bash_profile
_、または_~/.profile
_に貼り付けることができます。 (起動ファイルの詳細については、bash(1)
のマンページを参照してください。複雑です。)
umask
の詳細は、シェルのマンページ、umask(2)
システムコールマンページ、またはumask(1posix)
POSIX提供のユーティリティマンページ(_manpages-posix
_がインストールされている場合)にあります。
ディレクトリのルートで次のコマンドを実行して、ディレクトリとファイルに必要な権限を設定します。
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
閉じ中括弧とバックスラッシュの間のスペースに注意してください
chmod
で大文字のXを使用すると、ディレクトリのみに実行権限を設定できます。つまり.
chmod -R ugo+X .
私はこの解決策を見つけました。フォルダーとサブフォルダーの場合:
chmod -R 777 */
そして、すべてのファイル(フォルダーとサブフォルダーにも):
find . -type f -name "*" | xargs chmod 644
これが良い方法でなければ、すべてのコメントを歓迎します。 Linuxの学習を始めたばかりです。
コメントに続いて、特殊文字を適切に処理するより堅牢なソリューションは次のとおりです。
find . -type f -print0 | xargs -0 chmod 644 # For files
find . -type d -print0 | xargs -0 chmod 755 # For directories
見つける。 -type f -exec chmod 644 {} \;