Thread ls -l: was ist was? (5 answers)
Opened by pktm at 2007-07-17 22:55

Ishka
 2007-07-18 11:45
#95894 #95894
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wie groß die Blockgröße ist (so groß ist die minimale Datei und um soviel wird die Datei vergrößert, aber auch das stimmt nicht immer), hängt stark vom Dateisystem, manchmal auch von den Einstellungen beim Erstellen des Dateisystemes ab. Aber 4096 Bytes ist dafür durchaus eine typische Größe.

Und das, was bei vim angezeigt wird, ist nicht das, was in den Dateisystemblöcken drinsteht, sondern was eigenes.

Aber zum Thema:
bei einem Vezeichnis gibt die Zahl der Hardlinks darüber Auskunft, wieviele Unterverzeichnisse drinnen sind.
Zwei Hardlinks hat das Verzeichnis sowieso, einmal das Verzeichnis selbst, ferner einen, da in jedem Verzeichnis . liegt (/ hat einen zusätzlichen Hardlink und zwar .. ist hier das gleiche wie .).
und jedes Unterverzeichnis hat mit .. einen Hardlink auf das Verzeichnis.
Damit kann man (meistens) von der Zahl der Hardlinks 2 abziehen und weiß dann, wieviele Unterverzeichnisse drinnen liegen.

Ohne weitere Tricks kann man (zumindestens auf den Systemen, die ich ausprobiert habe) keine weiteren Hardlinks auf Verzeichnisse erzeugen (mit Tricks geht das).
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}

View full thread ls -l: was ist was?