підпапки chown з власником поточної папки та групою


8

У скрипті bash я хочу рекурсивно виконувати всі підпапки довільної папки з користувачем та власниками групи цієї папки.

Мій підхід - це щось на зразок використання stat -c "%U %G" .

Але це повертає лише закономірність username[whitespace]groupname

Звичайно, я міг би просто спробувати різні інструменти для заміни пробілів на :але, але я вважаю за краще використовувати більш "вбудований" спосіб, якщо такий є, щоб просто застосувати поточне право власності на підпапки.

Відповіді:


6

chown, наприклад chmod, може використовувати посилання:

chown [OPTION]... --reference=RFILE FILE...

Change the owner and/or group of each FILE to OWNER and/or GROUP.  With
--reference, change the owner and group of each FILE to those of RFILE.

Тому:

chown --reference=/some/folder -R /some/folder

8

Насправді вам не потрібно аналізувати вихід, щоб видалити пробіл - ви додали це у свою команду! Ви можете просто відформатувати його як завгодно ( chownв першу чергу з синтаксисом 'двокрапки'):

$ stat -c "%U:%G" .
zanna:unicorns

Тому просто передайте це chownкоманді із заміною команд:

chown -R $(stat -c "%U:%G" .) .

Іноді я просто сліпий за очевидне. Дякую!
Jankapunkt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.