Як змінити дозволи на кілька файлів, знайдених за допомогою команди find?


11

У мене каталог з численними файлами. Частина файлів має 755дозволи, а інша - 644дозволи. Я хотів би перетворити файли з 755дозволами в 644. Я спробував наступний рядок, запустивши його з самого каталогу:

find . -perm 755 -exec chmod 644 {}\;

Однак у результаті дозвіл змінився лише для самого каталогу, після зміни його назад я з'ясував, що дозволи на файли залишаються незмінними. Я щось сумую?


Ваша команда видаляє виконавчий біт з каталогу, унеможливлюючи чдір на нього та перегляд файлів, які він містить. Ось чому команда, здається, не працює. Спробуйте find ./ -type f -exec chmod -x {} \;замість цього.
Шадур

Відповіді:


17

Гаразд, здається, що я знайшов проблему. Здається, що між і та має бути обов'язковий пробіл , команда виглядатиме так:{}\;

find . -perm 755 -exec chmod 644 {} \;

Замість:

find . -perm 755 -exec chmod 644 {}\;

Також проблему зі зміною дозволів каталогів можна вирішити, додавши -type fпрапор, і це виглядатиме так:

find . -type f -perm 755 -exec chmod 644 {} \;

6
Ви можете використовувати +замість того, \;щоб зменшити кількість створених підпроцесів.
Кевін

-type dзнайде каталоги. -type fзнайде файли.
Мік Т
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.