A principal diferença pode ser o tempo de pesquisa em um tempo muito maior /storage. Maio esta pasta no servidor contém uma quantidade muito grande de qualquer tipo de arquivos que aumentam a duração necessária para encontrar todos dat arquivos para esta árvore. Lado do servidor /storage pode ser lento também.
O próximo comando pode dar uma idéia disso (conta o número de arquivos e pastas em /storage ):
find /storage | wc -l
Observe também que o comando que você executa procurará cada *.dat arquivos como primeiro passo, e depois chamar chmod apenas uma vez com todos os nomes correspondentes como segundo passo.
Chamando chmod com 20 argumentos de nome de arquivo é razoável, mas o argumento de caminho de arquivo de 800 se torna um pouco demais. Seu sistema tem limitações sobre o tamanho do argumento da linha de comando xargs --show-limits ).
Eu sugiro que você pergunte diretamente find para executar seu comando que irá quebrar chmod chama em vários subconjuntos. O próximo comando irá ligar chmod uma vez por pasta contendo dat arquivos, o que parece razoável:
find /storage -type f -name '*.dat' -execdir chmod 444 '{}' \+
- Para um garfo
chmod por arquivo correspondente você precisa substituir \+ com \;
- Para ter uma ideia melhor da progressão, você pode adicionar argumentos
--changes ou --verbose para chmod ligar.
find /storage/ -name "*.dat" | xargs -n 1 echo chmod 444 >> bigscript.shé só correr e correr e apenas correr ... Poderia haver uma razão pela qual há uma operação de leitura em andamento em todos esses arquivos? Eu deveria parar a leitura op primeiro?