Se você tivesse uma lista de arquivos NUL terminada , você poderia usar a opção --files0-from=
de du
. De man du
:
--files0-from=F
summarize disk usage of the NUL-terminated file names specified
in file F; If F is - then read names from standard input
Você pode converter uma lista separada por nova linha em uma lista separada por NUL usando tr
, por exemplo,
tr '\n' 'du -sch --files0-from=filelist0
' < filelist > filelist0
Então
du -sch --files0-from=filelist0 | tail -n 1
Se você quiser ver apenas o total, envie o resultado por meio de tail
tr '\n' ' --files0-from=F
summarize disk usage of the NUL-terminated file names specified
in file F; If F is - then read names from standard input
' < filelist | du -sch --files0-from=- | tail -n 1
Para evitar gerar o arquivo extra, você pode fazer algo assim
tr '\n' 'du -sch --files0-from=filelist0
' < filelist > filelist0