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?ls -lR /storage/
? Existe um lugar comum onde ele trava?