Como excluir arquivos ocultos no chmod recursivo?

1

Eu estou tendo que fazer chmod -R 755 some_dir onde 'some_dir' contém pastas '.git'. Existe alguma maneira que eu possa excluir arquivos ocultos e pasta ao fazer chmod recursivo?

Nota: a pasta chmoding .git está causando o seguinte erro

some_dir/.git/objects/pack/pack-dd149b11c4e5d205e3022836d49a972684de8daa.idx': Operation not permitted

Eu realmente não preciso chmod.git pastas, mas infelizmente não posso removê-los também no meu caso.

    
por Krishnaraj 24.10.2013 / 11:29

2 respostas

3

Não com chmod sozinho. Você precisará usar find :

find some_dir -name '.?*' -prune -o -exec chmod 755 {} +

Ou com zsh (ou ksh93 -G , ou com tcsh após set globstar ) globbing:

chmod 755 -- some_dir some_dir/**/*

(você também pode fazer isso com fish ou bash -O globstar , mas esteja ciente de que bash versões anteriores a 4.3 e fish seguem links simbólicos ao decrescer diretórios)

Tem certeza de que deseja tornar todos os arquivos executáveis?

    
por 24.10.2013 / 11:36
-1
find /Your/Folder -type d -regextype posix-extended -regex ^[^\.].*$ -exec chmod -R 755 {}

^[^\.] : excluirá todos os nomes de arquivos que começam com um ponto.

    
por 24.10.2013 / 11:45