回答:
オプションを指定してfind
コマンドを使用し-user
ます。何かのようなもの:
find / -user john
ユーザー「john」が所有するすべてのファイルが最終的に表示されます。
それらの所有権を変更したい場合は(実行せfind
ずにを実行して、必要なリストがあることを確認します)、次のようになります。
find / -user john -exec chown harry {} \;
それを行います。
これは遅いですが、今日rsync
は--usermap
選択肢がないのでこの質問に遭遇しました。
私chown
(v。chown(GNU coreutils)8.13)には組み込みの再帰(-R
)と--from
オプションが用意されているので、あなた(と私の)の問題も
chown -R --from=john harry /
wwwrun (id:30)
とグループwww (id:8)
、debian www-data (id: 33)
では両方。を使用してファイルをコピーした後
rsync -az /path/to/files me@debian:/path/to/
使った
chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/
ターゲット(debian)マシン上。
注:rsync version 3.1.0 protocol version 31
上記のように--usermap
なっているので、ソースマシンで1つのコマンドを使用して3つの手順をすべて実行できたとします。
rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/
find -exec
私のための1つのライナーは、手動で物事を行う直前に、最後の手段です。(また、私は書くの{} \;
が嫌いですが、これは個人的なものです)
chown harry:harry
、グループメンバーシップが正しいことを確認する必要がある場合は、UIDを使用して実行します。しかし、それはここのアプリケーションに大きく依存します。