Torna todos os arquivos em um executável de diretório (não recursivamente) enquanto assegura a não recursividade estritamente

0

Eu entendo o título desta pergunta como estranho, mas me pergunto se em algumas situações deveria haver uma necessidade de tomar cuidado extra e de alguma forma "forçar" a não-recursividade ao alterar as permissões com chmod não-recursivamente (sem o-R % argumento).

Digamos que eu tenha um diretório ~/x . Este diretório tem alguns arquivos, assim como uma sub-dir ~/x/y que também tem alguns arquivos, e eu decidi tornar todos os arquivos x executáveis sem efetuar arquivos em y . Eu poderia executar:

chmod +x ~/x/*

Surly o chmod deve fazer o trabalho e é improvável que em qualquer versão do Bash (incluindo versões futuras) a lógica POSIX seja alterada e o chmod acima também afete o subdiretório, mas pergunto-me se poderia Quaisquer situações em Bash (ou shells comuns) em que chmod +x ~/x/* também cobrirá os arquivos y , e como melhorar meu comando para proteger de tais mudanças indesejadas?

    
por user9303970 11.02.2018 / 11:43

1 resposta

2

Você pode usar localizar e restringir para obter apenas arquivos no diretório atual

find ~/x -maxdepth 1 -type f -exec chmod +x {} +
    
por 11.02.2018 / 13:01