ファイルの所有者を再帰的に変更しますが、ディレクトリの所有者は変更しません

ファイルの所有者を再帰的に変更しますが、ディレクトリの所有者は変更しません

約 50,000 個のディレクトリと約 100 万個のファイルがあるディレクトリがあります。

すべてのファイルの所有者 (または権限) を変更したいのですが、ディレクトリは変更しません。これは、リモート サーバーから追加のファイル (約 15 万個のディレクトリと約 360 万個のファイル) を SCP しようとしているためです。

私が持っているディレクトリはリモート ディレクトリの一部ですが、scp は失敗しました...

SCP を再度実行すると、リモート ディレクトリから既にコピーしたファイルを上書きしてやり直します。

答え1

を使用すると、プロセスで がトリガーされないfindという追加の利点があります。親ディレクトリから:ARG_MAX

find . -type f -exec chown newowner {} +

のためにchmod

find . -type f -exec chmod 644 {} +

-type ffindファイルのみになります。

答え2

別の方法としては、 を使用することです。と対応する のオプションをとともにxargs使用する必要がります。-print0find-0xargs

find . -type f -print0 | xargs -0 chown newuser:newgroup

からman find

-印刷0

標準出力にファイル名全体を出力し、その後にヌル文字。 これ改行や他の種類の空白を含むファイル名を許可しますfind 出力を処理するプログラムによって正しく解釈される必要があります。このオプションは、xargs の -0 オプションに対応します。

xargsも正しく処理しますARG_MAX

関連情報