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
、入力。