gesammt grösse von ordner???

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

gesammt grösse von ordner???

Beitrag von latenite » 24.06.2008 00:21:37

Hallo Leute

Ich habe hier 2 kleine Scripte die mir beide die gesammtgrösse eines Verzeichnisses zeigen sollen
Machen sie auch..nur zeigen beide leicht unterschiedliche Werte an?
Wieso

Code: Alles auswählen

#!/bin/bash

## Script gives size of current directory in Bytes when executed

while true; do

let TotalBytes=0

for Bytes in $(ls -laR | grep "^-" | awk '{ print $5 }')
do
   let TotalBytes=$TotalBytes+$Bytes
done

echo "totalsize = " "${TotalBytes}"

sleep 1

clear

done

und

Code: Alles auswählen

while true; do du -s /home/kai/Desktop/javaapi/ && sleep 1 && clear ;done
ich lade grad mit httrack die javaAPI und hier ist ein screenshot... da kann man den Unterschied mal sehen ...

Bild

danke :D

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: gesammt grösse von ordner???

Beitrag von rendegast » 24.06.2008 02:31:37

Kannst Du selbst ausprobieren,
'du' rechnet das Verzeichnis, Links usw. mit.
Zusätzlich gibt es Unterschiede durch die Rundung der Größenangabe.

'ls -laR' gibt bei mir in fünfter Spalte Bytes aus, 'du -s' gibt 1k-Blöcke aus, 'du -sb' wären Bytes.




Code: Alles auswählen

for Bytes in $(ls -laR | grep "^-" | awk '{ print $5 }')
do
   let TotalBytes=$TotalBytes+$Bytes
done
awk kann auch greppen und rechnen:

Code: Alles auswählen

ls -laR Verzeichnis | awk '$1~/^-/ { SUM+=$5 ; print SUM}'
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Sid Burn
Beiträge: 47
Registriert: 16.11.2006 15:18:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /universe/earth/europe/germany/nrw/essen
Kontaktdaten:

Re: gesammt grösse von ordner???

Beitrag von Sid Burn » 25.06.2008 15:01:50

ich lade grad mit httrack die javaAPI und hier ist ein screenshot... da kann man den Unterschied mal sehen ...
Die simplen zwei Zeilen mit Copy & paste einfach zu Kopieren war wohl zu schwierieg? :roll:

----
Machen sie auch..nur zeigen beide leicht unterschiedliche Werte an?
"du" zeigt dir den festplattenverbrauch an. "ls" zeigt dir die Dateigröße an. Das sind zwei unterschiedliche Dinge. Legst du eine Datei an, dann wird immer minimum ein Block benutzt. Wie groß dieser ist hängt vom Dateisystem ab. Bei ext3 ist es in der Regel 4kb. Du kannst aber auch ganz andere Werte einstellen. 32kb, 64kb etc.

Code: Alles auswählen

sidburn@sid:~$ echo "t" > hallo
sidburn@sid:~$ du -sch hallo
4.0K    hallo
4.0K    total
sidburn@sid:~$ ls -lha hallo
-rw-r--r-- 1 sidburn sidburn 2 2008-06-25 14:58 hallo
sidburn@sid:~$
Die größe ist 2 bytes "t" + "Newline". Mit der Option "-b" wird auch bei "du" mit Dateigrößen anstatt Festplattenverbrauch gerechnet.

Antworten