Смена владельца файлов рекурсивно, но не каталогов
У меня есть каталог с ~50 тыс. Каталогов и ~1 млн. Файлов.
Я хочу изменить владельца (или разрешения) всех файлов, но не каталогов. Это потому, что я пытаюсь SCP дополнительные файлы с удаленного сервера (~150 тыс. Каталогов и ~3,6 млн файлов).
Каталог, который у меня есть, является частью удаленного каталога, но scp не удалось...
Если я снова запустил SCP, он запустится заново, переписав уже скопированные файлы из удаленного каталога.
2 ответа
Ты можешь использовать find
имеет дополнительное преимущество в том, что ARG_MAX
не будет запущен в процессе. Из родительского каталога:
find . -type f -exec chown newowner {} +
За chmod
:
find . -type f -exec chmod 644 {} +
-type f
будут find
только файлы.
Другой альтернативой является использование xargs
, Вам нужно будет использовать -print0
вариант с find
и соответствующий -0
вариант xargs
:
find . -type f -print0 | xargs -0 chown newuser:newgroup
От man find
:
-print0
выведите полное имя файла на стандартный вывод с последующим нулевым символом. Это позволяет правильно интерпретировать имена файлов, содержащие символы новой строки или другие типы пробелов, программами, обрабатывающими результаты поиска. Эта опция соответствует опции -0 в xargs.
xargs
также будет правильно обрабатывать ARG_MAX
,