Я пытался очистить разрешения для нескольких ящиков и искал пользователя chmod, а также всю интернет-документацию, с которой я справлялся, без всякой удачи - так что поехали.
По сути, у меня есть каталог со многими подкаталогами и файлами - и я хотел бы установить следующие разрешения:
Для каталогов: 770 (U + RWX, G + RWX, O-RWX)
Для файлов: 660 (U + rw, g + rw, ax, o-rw)
Я хотел бы попытаться сделать это с одним рекурсивным chmod, если это возможно, чтобы избежать повторения в каждом каталоге и установки разрешений для файлов.
Я предполагаю, что должен быть способ сделать это без написания собственного сценария оболочки - но я не смог ничего найти.
Я ценю вашу помощь!
источник
Нет необходимости в скриптах.
// Каталоги:
// Файлы:
источник
В вашем случае это может быть не так сложно, как об этом думали другие (хотя
find
в целом это действительно хороший инструмент для такого рода вещей). Разница между режимами заключается в бите выполнения. Если это так, что ни в одном из файлов уже не установлен бит исполнения, вы можете сделать это за один вызовchmod
, как вы и просили.Ключевым моментом здесь является заглавная буква
X
, которую man-страница объясняет какТаким образом, если ваши файлы еще не имеют установленного бита выполнения, он будет установлен только для каталогов.
источник
Я обнаружил, что, по крайней мере, для моего варианта использования, использование
rsync
для копирования каталога на себя было намного быстрее, чем использованиеchmod
напрямую со списком файлов изfind
.Если вы хотите добавить
chown
к той же операции,rsync
вы можете сделать это тоже с помощью--chown=user:group
опции.источник
Чисто и просто:
источник
find ... -exec chmod ... {} \;