Como chover um grande grupo de arquivos com base no ID do proprietário anterior?

4

Eu criei uma nova conta no OS X e descartei minha antiga.

Eu tenho um monte de arquivos que agora tem o dono 501 que precisa ter a propriedade alterada para mim

[/usr/local]$ ll 
total 24
drwxrwxr-x  18 root  admin   612B Oct 20 11:01 ./
drwxr-xr-x@ 14 root  wheel   476B Oct 19 10:43 ../
-rw-r--r--   1 501   admin   116B Oct 19 10:01 .gitignore
drwxr-xr-x  13 501   admin   442B Oct 19 12:35 Cellar/
drwxr-xr-x   7 501   admin   238B Oct 19 12:17 Library/
-rw-r--r--   1 501   admin   679B Oct 19 10:01 README.md
drwxr-xr-x  42 501   admin   1.4K Oct 20 11:12 bin/
drwxr-xr-x   2 501   admin    68B Oct 20 11:01 cfg/
drwxr-xr-x   5 501   admin   170B Oct 20 11:08 data/
drwxr-xr-x   7 501   admin   238B Oct 20 11:08 docs/
drwxr-xr-x   4 501   admin   136B Oct 19 12:23 etc/
drwxr-xr-x  11 501   admin   374B Oct 19 12:35 include/
drwxr-xr-x  38 501   admin   1.3K Oct 19 12:35 lib/
lrwxr-xr-x   1 root  wheel    27B Oct 20 10:02 mysql -> mysql-5.5.16-osx10.6-x86_64
drwxr-xr-x  16 root  wheel   544B Sep  9 11:08 mysql-5.5.16-osx10.6-x86_64/
drwxr-xr-x  16 501   admin   544B Oct 20 11:01 share/
drwxr-xr-x   4 501   admin   136B Oct 20 11:01 tests/
drwxr-xr-x   2 501   admin    68B Oct 20 11:01 www/



[/usr/local]$ ll Cellar
total 0
drwxr-xr-x  13 501   admin   442B Oct 19 12:35 ./
drwxrwxr-x  18 root  admin   612B Oct 20 11:01 ../
drwxr-xr-x   3 501   admin   102B Oct 19 12:18 gettext/
drwxr-xr-x   3 501   admin   102B Oct 19 12:16 git/
drwxr-xr-x   3 501   admin   102B Oct 19 12:21 glib/
drwxr-xr-x   3 501   admin   102B Oct 19 12:34 gnutls/
drwxr-xr-x   3 501   admin   102B Oct 19 12:23 irssi/
drwxr-xr-x   3 501   admin   102B Oct 19 12:31 libgcrypt/
drwxr-xr-x   3 501   admin   102B Oct 19 12:30 libgpg-error/
drwxr-xr-x   3 501   admin   102B Oct 19 12:20 libiconv/
drwxr-xr-x   3 501   admin   102B Oct 19 12:32 libtasn1/
drwxr-xr-x   3 501   admin   102B Oct 19 12:35 loudmouth/
drwxr-xr-x   3 501   admin   102B Oct 19 12:17 pkg-config/
[/usr/local]$ 

OBJETIVO

Eu quero encontrar recursivamente todos os diretórios de arquivos e em /usr/local/ com o proprietário 501 e usá-los para $USER

NOTA

Alguns dos arquivos e diretórios nessa pasta são de propriedade de root . Esses arquivos precisam permanecer intocados.

    
por macek 01.11.2011 / 22:40

1 resposta

3
sudo find /usr/local -uid 501 -exec chown $USER '{}' ';'

A propósito, find também tem a opção -nouser que combina todos os arquivos com UIDs usuários excluídos:

sudo find /usr/local -nouser -exec chown $USER '{}' ';'

também corresponderia aos arquivos de outro usuário excluído.

    
por 01.11.2011 / 22:47