chmod выдает отсутствующий операнд на 764, OK на 664

chmod выдает отсутствующий операнд на 764, OK на 664

Установив все в своем проекте в 777( rwxrwxrwx) для целей отладки, я хотел снизить открытость и установить каталоги (не файлы) в корневой папке в 664( rw-rw-r--).

Для этого я использовал (изКак вывести список папок с помощью команд bash?):

chmod 664 -- */

Это сработало, как и ожидалось. Затем я понял, что мне нужен бит выполнения для каталогов, чтобы войти в них. Поэтому я попробовал:

chmod 764 -- */

Но это вызвало missing operand after "764"ошибку.

Я могу изменить разрешения вручную ( chmod 764 <dir-name>), и каталогов не так уж много, так что это не большая проблема, но мне хотелось бы разобраться.

Почему я не могу использовать chmod 764 */для установки каталогов в моем текущем пути rwxrw-r--?

решение1

Это имело бы смысл, если бы вы установили параметры подстановки оболочки так, чтобы

  • *включает имена, начинающиеся с ., и
  • Подстановочный знак, который ничему не соответствует, просто исчезает, а не сохраняется как таковой. (Например, если у вас нет файлов, имена которых начинаются с foo, команда echo foo*выводит пустую строку, а не печатает foo*буквально.)

Если вышесказанное верно, то первая команда установлена .​​в режим 664, что означает, что у вас не было разрешения на чтение, .когда вы дали вторую команду. Поэтому */не удалось расширить, и chmod 764 -- */он стал chmod 764 --.

Связанный контент