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 comandoecho foo*
imprimirá uma linha em branco em vez de imprimirfoo*
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 --
.