У мене є архів, який архівує хтось інший, і я хочу автоматично, після завантаження його, змінити гілку файлової системи в межах витягнутих файлів, щоб отримати доступ до читання. (Я не можу змінити спосіб створення архіву).
Я розглянув цю тему: chmod: Як рекурсивно додавати дозволи на виконання лише до файлів, які вже мають дозвіл на виконання, як у деяких інших, але немає радості.
Спочатку каталоги мають декілька, але всі неправильні прапори, вони можуть відображатися як:
drwx------
d---r-x---
drwxrwxr-x
dr--r-xr--
Це лише кілька тих, кого я виявив поки що, але може бути і більше.
find
помилки, коли намагається заглянути в каталог без x
дозволу, і тому не передає його chmod
. Те, що я робив до цього часу, - це змінити дозволи вручну в батьківському каталозі, потім перейти в дочірні каталоги і зробити те саме для них тощо. Але це багато ручної праці. Чи не існує способу зробити це автоматично?
Тобто, як я це роблю зараз:
робити:
$ chmod -R +x
$ chmod -R +r
поки я не отримаю помилок, значить
$ find -type f -exec chmod -x {} +
Але повинен бути кращий шлях.