Como você não colocou aspas em torno da substituição de comandos, a divisão de palavras está ocorrendo aqui, de acordo com o valor de IFS
(espaço, tabulação, nova linha por padrão). Você tem espaço no nome do arquivo, por exemplo, /tmp-directory/connector_db_ connector_db
está sendo dividido em duas palavras - /tmp-directory/connector_db_
, connector_db
.
Você pode iterar os nomes dos arquivos, um por um:
while IFS= read -r file; do du -sch -- "$file"; done <filelist
Como seu arquivo é grande, isso pode levar algum tempo.
Além disso, como os arquivos estão sendo analisados individualmente, você não terá o tamanho total mostrado por du
. Então você pode soltar -s
e -c
:
while IFS= read -r file; do du -h -- "$file"; done <filelist