Windowsで7zipを使用して多くのサブフォルダーとファイルを含むフォルダーをパックし、VPSにアップロードして、次のコマンドを実行します。
tar -xvzf file.tar.gz
次に、すべての解凍されたファイルとフォルダーに777のアクセス許可があります。フォルダーに755とファイル644のアクセス許可を付与するには、どうすれば取得できますか?
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インストールされている場合)にあります。
私はこの解決策を見つけました。フォルダーとサブフォルダーの場合:
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
the': No such file or directory chmod: cannot access 。chmod:Logo.txtにアクセスできません ':そのようなファイルまたはディレクトリはありませんdi
777危険であり、ごく少数のシステムにのみ適用されます。
find . -type f -print0 | xargs -0 chmod 644。これ-name "*"は必須ではなく、xargs(1)ファイル名に表示できないASCII 文字でファイル名を解析する-を使用しない限り、スペースまたは改行で-0ファイル名を解析NULします。-print0以下のためにはfind(1)適しモードでその出力をフォーマットすることを要求しxargs -0、入力。