O verdadeiro problema é que você está tentando analisar a saída de ls
. Isso nunca é uma boa idéia, e como você observou, pode quebrar facilmente. Por uma vez, não é nem portátil nos sistemas operacionais. Analisar ls
é muitas vezes um sintoma de necessidade de fazer outra coisa, mas de contornar (e isso é um Problema XY ).
De qualquer forma, você está perguntando:
I am trying to isolate the file size.
Em seguida, basta usar wc -c
:
wc -c < filename
Isto lhe dará o tamanho do arquivo em bytes (ao contrário de du
, o que lhe dá blocos). Você pode cortar o espaço em branco canalizando para tr -d ' '
ou similar.
Como uma pequena dica para o seu loop: Em vez de usar backticks para realizar a substituição de comandos, faça um favor e use $()
, por exemplo. %código%. Isso tem várias vantagens, incluindo maior legibilidade e menos dores de cabeça ao aninhar esses comandos.