Рекурсивный chmod: rw для файлов, rwx для каталогов

Я хочу chmod много файлов и каталогов. Как x указывает на список для каталогов, и выполнитесь для регулярных файлов, которые я хотел бы применить rw для файлов и rwx для каталогов. Это - возможное использование только chmod команда?

Если это не, каков наиболее удобный способ?

Выполнение a chmod -R 770 не возможность, поскольку я не хочу, чтобы регулярные файлы стали исполняемым файлом.

28
задан 10.10.2009, 12:36

3 ответа

Я делаю это при случае использование сингла find команда. Ужасный, но эффективный.

find /p/a/t/h \( -type d -exec chmod 755 {} \; \) -o \( -type f -exec chmod 644 {} \; \)
19
ответ дан 07.12.2019, 09:22
  • 1
    Не "{}" должен быть заключен в кавычки, на всякий случай соединяет каналом, содержат пробелы? Как find . -type d -exec chmod -vc 755 "{}" \; (включая -vc для некоторой обратной связи). (И возможно, просто для уточнения, добавляют две автономных команды к ответу также?) – Arjan 10.10.2009, 12:46

Используйте X разрешений из страницы справочника:

Выполняться/искать биты, если файл является каталогом или каким-либо из выполняться/искать битов, установлены в исходном (неизмененном) режиме. Операции с символом перманента "X" только значимы в сочетании с op символом "+" и проигнорированы во всех других случаях.

Сделайте следующее:

chmod -R a-x [directory]
chmod -R a+rwX [directory]

Это удаляет выполнить бит из всех файлов и каталогов, сопровождаемых путем добавления чтения и полномочий записи ко всему и полномочий на исполнение только к каталогам. (Никакие регулярные файлы не имеют выполнение, больше обдумывал от первого шага.)

37
ответ дан 07.12.2019, 09:22
  • 1
    это не вызывает режим 666 на регулярных файлах. это не исполняемый бит для регулярных файлов if у них уже есть он набор. – quack quixote 07.10.2009, 09:23

Можно также использовать find наряду с xargs:

find . -type f -print0 | xargs -0 chmod 666
find . -type d -print0 | xargs -0 chmod 777

где -type указывает каталог или файл.

14
ответ дан 07.12.2019, 09:22
  • 1
    Не xargs имеют ограничение длины? Это - МНОГО файлов и каталогов. – Deleted 10.10.2009, 12:41
  • 2
    я сделал бы каталоги сначала, затем файлы. Иначе Вы рискнули бы пропускать некоторое поддерево из-за отсутствия разрешения. Кроме того, необходимо проверить, разведан ли список прежде или после chmod, иначе, то же как выше. И да, я воздержался бы от использования xargs. – Stefano Borini 10.10.2009, 13:20

Теги

Похожие вопросы