30

Можно ли найти и отсортировать все файлы, которые принадлежат конкретному пользователю? Я сделал кучу вещей как неправильный пользователь и должен дать правильное право владения файлами.

Есть ли рекурсивный и условный способ, которым я могу разбить кучу файлов и каталогов?

3 ответа3

53

Вы можете использовать эту портативную команду поиска с чем-то вроде этого.

find . -user old-user -exec chown new-user:new-group {} \;

Вы можете расширить это, чтобы найти конкретные файлы с опциями -iname (не POSIX, но доступны в OSX)

find . -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

. обозначает текущую папку и ниже, так что вы можете использовать конкретный путь в качестве основы.

find /var/www/ -iname '*.html' -user www-data -exec chown www-data:www-data {} \;
10

Ты можешь использовать

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group  *

Из руководства chown --help:

  --from=CURRENT_OWNER:CURRENT_GROUP
                     change the owner and/or group of each file only if
                     its current owner and/or group match those specified
                     here.  Either may be omitted, in which case a match
                     is not required for the omitted attribute.

редактировать: это, конечно, работает только на Linux и большинстве UNIces. Для OSX (который основан на BSD) см. Решение @StephenTrapped.

3

Опция -h chown изменяет разрешение самих файлов символьных ссылок, а не только цели.

Что может иметь решающее значение при работе с программными двоичными папками, которые используют символические ссылки для переключения между версиями.

find . -user old-user -exec chown -h new-user:new-group {} \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .