
約 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 f
find
ファイルのみになります。
答え2
別の方法としては、 を使用することです。と対応する のオプションをとともにxargs
使用する必要がります。-print0
find
-0
xargs
find . -type f -print0 | xargs -0 chown newuser:newgroup
からman find
:
-印刷0
標準出力にファイル名全体を出力し、その後にヌル文字。 これ改行や他の種類の空白を含むファイル名を許可しますfind 出力を処理するプログラムによって正しく解釈される必要があります。このオプションは、xargs の -0 オプションに対応します。
xargs
も正しく処理しますARG_MAX
。