chmod lança operando ausente em 764, OK em 664

chmod lança operando ausente em 764, OK em 664

Tendo definido tudo em meu projeto como 777( rwxrwxrwx) para fins de depuração, eu queria diminuir a abertura e definir os diretórios (não os arquivos) na pasta raiz como 664( rw-rw-r--).

Para fazer isso eu usei (deComo listar pastas usando comandos bash?):

chmod 664 -- */

Isso funcionou como esperado. Então percebi que precisava do bit de execução nos diretórios para acessá-los. Então eu tentei:

chmod 764 -- */

Mas isso gerou um missing operand after "764"erro.

Posso alterar as permissões manualmente ( chmod 764 <dir-name>) e não há muitos diretórios, então não é um grande problema, mas gostaria de entender.

Por que não posso usar chmod 764 */para definir os diretórios no meu caminho atual rwxrw-r--?

Responder1

Isso faria sentido se você tivesse definido as opções shell glob para que

  • *inclui nomes que começam com .e
  • um curinga que não corresponde a nada simplesmente desaparece, em vez de persistir como ele mesmo. (Por exemplo, se você não tiver nenhum arquivo cujos nomes comecem com foo, o comando echo foo*imprimirá uma linha em branco em vez de imprimir foo*literalmente.)

Se o que foi dito acima for verdade, então o primeiro comando foi definido .para o modo 664, o que significa que você não tinha permissão para ler .quando emitiu o segundo comando. Portanto, o arquivo */não pôde ser expandido e chmod 764 -- */tornou-se chmod 764 --.

informação relacionada