〜50k個のディレクトリと〜1m個のファイルがあるディレクトリがあります。
ディレクトリではなく、すべてのファイルの所有者(または許可)を変更したい。これは、リモートサーバーから追加ファイルをSCPしようとしているためです(〜15万のディレクトリと〜3.6mのファイル)。
私が持っているディレクトリはリモートディレクトリの一部ですが、scpは失敗しました...
SCPを再度実行すると、リモートディレクトリから既にコピーしたファイルを上書きして、最初からやり直します。
〜50k個のディレクトリと〜1m個のファイルがあるディレクトリがあります。
ディレクトリではなく、すべてのファイルの所有者(または許可)を変更したい。これは、リモートサーバーから追加ファイルをSCPしようとしているためです(〜15万のディレクトリと〜3.6mのファイル)。
私が持っているディレクトリはリモートディレクトリの一部ですが、scpは失敗しました...
SCPを再度実行すると、リモートディレクトリから既にコピーしたファイルを上書きして、最初からやり直します。
回答:
別の選択肢はを使用することxargs
です。次の-print0
オプションとfind
それに対応する-0
オプションを使用する必要がありますxargs
。
find . -type f -print0 | xargs -0 chown newuser:newgroup
からman find
:
-print0
標準出力に完全なファイル名を出力し、その後にヌル文字を続けます。これにより、改行または他の種類の空白を含むファイル名が、検索出力を処理するプログラムによって正しく解釈されます。このオプションは、xargsの-0オプションに対応しています。
xargs
も正しく処理しARG_MAX
ます。
find..exec
奇妙なファイル名を処理します。