Как правильно рекурсивно отбирать файлы (включая скрытые каталоги)


8

Эта загадка вызвана запуском git pullот root.

Для этого есть разные причины ... Я хочу, чтобы мое устройство обновляло код при загрузке и rc.localзапускалось с правами root.

Все работает в основном нормально ( npm installимеет тенденцию к сбою при запуске с правами root, но это целая «другая тема»), проблема возникает, когда я пытаюсь позже использовать репозиторий git с пользователем без полномочий root ... некоторые файлы git имеют был написан пользователем root, так что теперь я больше не могу его использовать (разрешение запрещено).

Так что я хотел бы chownвернуться к нему рекурсивно, но, похоже, нет ничего, что действительно работало бы со всеми маленькими git-файлами. Я попробовал -Rфлаг и ./**/*путь.

Я предполагаю, что ни один из этих методов не превращается в точечные каталоги.


1
Какую оболочку вы используете? В bashвам необходимо установить shopt -s dotglobдля того , чтобы соответствовать скрытые файлы *или **.
Джимми

1
@jimmij приятно знать, спасибо (вы, вероятно, можете сказать это как ответ)
Стивен Лу

Вы chown -R *, а не chown -R .?
Питер Кордес

Ответы:


16

Следующая команда работает для меня в Ubuntu. Изменилось все файлы и каталоги

sudo chown -R someuser:somegroup YourDir

Я пытался, sudo chown -R me:me .и когда ls -alвсе мои файлы все еще принадлежат пользователю root. Почему это не работает?
Ричард

@Richard ты пробовал использовать абсолютный путь или ./?
августа

0

Я использую treeвместо этого:

 sudo tree -fai ~/.blabla  | xargs -L1 -I{} sudo chown youruser:youruser {}

Также постарайтесь не запускать рекурсивные команды chown или chmod в каталоге '/' или другом системном каталоге.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.