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


11

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

tar -xvzf file.tar.gz

次に、すべての解凍されたファイルとフォルダーに777のアクセス許可があります。フォルダーに755とファイル644のアクセス許可を付与するには、どうすれば取得できますか?


「Command Line Fu」というウェブサイトもあり、他にもたくさんのアイデアがあります。
djangofan 2012年

回答:


13

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インストールされている場合)にあります。


umask 022 tar zxvf file.tar.gz->ファイルを抽出する場合は、ファイルごとに確認を求める

その際、既存のファイルを上書きしますか?
サルノルド2012年

6

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

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

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


find: `-exec 'の引数がありません

このコマンドが「検索:「-exec」への引数がありません」と私に言う理由はありますか?ありがとう。

閉じ中括弧と\;
poussma

2

大文字のXを使用するchmod場合は、それを使用して、ディレクトリにのみ実行権限を設定できます。すなわち

chmod -R ugo+X .

1

私はこの解決策を見つけました。フォルダーとサブフォルダーの場合:

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

しかし、2番目のコマンドは、多くのファイルで次の出力を生成しますthe': No such file or directory chmod: cannot access 。chmod:Logo.txtにアクセスできません ':そのようなファイルまたはディレクトリはありませんdi

2
777危険であり、ごく少数のシステムにのみ適用されます。
sarnold 2012年

2
、あなたの2番目のコマンドを改善するにはfind . -type f -print0 | xargs -0 chmod 644。これ-name "*"は必須ではなく、xargs(1)ファイル名に表示できないASCII 文字でファイル名を解析する-を使用しない限り、スペースまたは改行で-0ファイル名を解析NULします。-print0以下のためにはfind(1)適しモードでその出力をフォーマットすることを要求しxargs -0、入力。
sarnold 2012年

0

見つける。-type f -exec chmod 644 {} \;


2
スーパーユーザーへようこそ。1行の回答はめったに受け入れられません。回答について詳しく説明できますか?
2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.