Você pode usar du
:
du -c $(echo "$VAR")
Isso não funcionará quando os nomes dos arquivos contiverem espaços.
Use isto:
while IFS= read -r f; do
du "$f";
done < <(echo "$VAR") \
| grep -o "^[0-9]*" \
| paste -sd+ | bc
Estou tentando criar um script do Nemo que calcule o tamanho total do arquivo dos arquivos selecionados e passe para o restante do script.
Ele está usando a variável de ambiente NEMO_SCRIPT_SELECTED_FILE_PATHS que o próprio Nemo define quando alguns arquivos são selecionados.
O problema é que a variável contém uma nova linha de caminhos separados e nomes de arquivos e eu não sei como lidar com eles.
Alguma idéia?
Edit: o que eu recebo se faço eco do conteúdo da variável em um arquivo é, por exemplo:
/home/sasa/Pictures/1041247.png /home/sasa/Pictures/849611447.jpg /home/sasa/Pictures/IO2.jpg
que se parece mais com espaço do que com nova linha delimitada.
Você pode usar du
:
du -c $(echo "$VAR")
Isso não funcionará quando os nomes dos arquivos contiverem espaços.
Use isto:
while IFS= read -r f; do
du "$f";
done < <(echo "$VAR") \
| grep -o "^[0-9]*" \
| paste -sd+ | bc