Use find
combinado com du
e redirecione para o arquivo com >
sudo find /path/to/topDir -maxdepth 1 -type d -exec du -sh {} \; > output.txt
Exemplo:
xieerqi:$ sudo find Desktop -maxdepth 1 -type d -exec du -sh {} \; > outputFile1.txt
[sudo] password for xieerqi:
xieerqi:$ cat outputFile1.txt
2.7G Desktop
69M Desktop/linux-kernel-4.1.0
1.1M Desktop/DOCS
6.8M Desktop/The comments that became a reporter’s death sentence | New York Post_files
4.0K Desktop/newdir
6.7M Desktop/IMAGES
12M Desktop/TIRES
504K Desktop/MSU-TEMPLATES
341M Desktop/PDFS
19M Desktop/java
Para que este comando forneça o uso do disco para diretórios específicos da lista, o que você pode fazer é combinar cat e xargs com o comando acima. Por exemplo,
cat dirList.txt | xargs -I dir sudo find dir -maxdepth 0 -type d -exec du -sh {} \;
Alguns diretórios dos quais você não é proprietário exigem que sudo
access liste seu uso de disco, portanto combine isso com sudo sh -c
. Deixe-me demonstrar,
xieerqi:$ sudo sh -c "cat dirList.txt | xargs -I dir find dir -maxdepth 0 -type d -exec du -sh {} \+"
[sudo] password for xieerqi:
2.7G /home/xieerqi/Desktop
11M /bin
5.5G /usr
xieerqi:$ cat dirList.txt
/home/xieerqi/Desktop
/bin
/usr