o que é curinga para selecionar todos os diretórios em um diretório


13

Eu quero definir bit pegajoso para todos os diretórios em um diretório excluindo arquivos. existe algum curinga para fazer isso?

#sudo chmod g+s /var/www/<WILD_CARD_FOR_ALL_DIRECTORIES>

Respostas:


24

Use */para corresponder apenas aos diretórios.

chmod g+s /var/www/*/

Para corresponder a todos os diretórios e subdiretórios, use **/*/(desde que você tenha globstarativado no bash):

shopt -s globstar
chmod g+s /var/www/**/*/

2
Funciona bem, mas será interrompido assim que o comprimento da linha de comando expandida exceder o limite de comprimento da linha de comando. -> cyberciti.biz/faq/argument-list-too-long-error-solution
— Scott

1
sim, eu estou bem ciente disso. No entanto, o OP solicitou um "curinga".
— dogbane

sim! eu pedi curinga, thanq.
— Necktwi

Eu sei que ele pediu uma solução curinga. Eu apenas apontei que isso falharia sob alguma circunstância. Outras que, não critc para ver aqui (I # ve comentou ainda upvoted, porque é uma solução de trabalho para a maioria dos casos) ^^
— Bonsi Scott

13

você pode usar find, veja o exemplo abaixo

find /var/www/ -type d -exec chmod g+s {} \;

3
Isso é bom, mas ainda assim não é um curinga - mas tem a vantagem de não falhar devido a muitos diretórios
— Bonsi Scott

Observe que isso é recursivo por padrão. Se você deseja que seu comando seja aplicado apenas no nível superior, use o -maxdepth findargumento
— Kris Harper #

0

Este NÃO é um curinga, por isso peço desculpas por não responder, no entanto ...
ls -al |grep ^d | awk '{print$NF}'listarei todos os diretórios no diretório atual, cabe a você decidir se deseja processar .e.. ou tira-los.

echo $(ls -al |grep ^d | awk '{print$NF}') faz com que se comporte como um curinga


Isso será interrompido se os arquivos tiverem espaços em branco à esquerda ou à direita ou novas linhas.
— Chris Down
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.