Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5818[/thread]

Ermitteln von Links auf eine Datei (*nix) (Seite 2)



<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
Crian
 2003-10-16 16:16
#63195 #63195
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Komisch, ich dachte es hätte eine Art Referenz-Counter gegeben. Aber vielleicht nur für die Hardlinks...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
betterworld
 2003-10-17 01:07
#63196 #63196
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Fuer Softlinks waere das ja auch gar nicht realisierbar. Stell Dir vor, Du hast auf Partition A eine Datei und auf Partition B einen (oder mehrere) Links darauf. Nun wird Partition B ungemountet (im Falle einer Diskette am besten noch herausgenommen und zertrampelt). Ist nun der Counter fuer die Datei falsch? Schliesslich sind die Links ja `weg'. Oder soll vor dem Unmounten so ein huebsches find-Ding ueber die ganze Partition B laufen, damit herausgefunden werden kann, um wie viel der Counter dekrementiert werden muss? Oder soll man mit der Datei am besten fuer jede Partition einen eigenen Counter speichern?

mfg
Das Weichei\n\n

<!--EDIT|betterworld|1066338512-->
Crian
 2003-10-17 15:30
#63197 #63197
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Weichei ^^ ;)
Man könnte doch beim wirklich kurz beim Mounten / Unmounten checken, wieviele Verweise dazukommen / verlorengehen...

Naja, könnte aufwändig werden ...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Relais
 2003-10-17 17:02
#63198 #63198
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=betterworld,14.10.2003, 16:58]busseniu@luxemburg:~ (0) [16:58:32] % find /afd
find: /afd: Datei oder Verzeichnis nicht gefunden[/quote]
Eine Verwendungsweise, die mir fremd war, und deren Sinn, naja :)

find / -name adf -print

ist für mich die Verwendung, an die ich bei find denke. Für's Testen fällt mir halt eher test(1), für's Listen ls(1) ein.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
betterworld
 2003-10-17 17:14
#63199 #63199
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=Relais,14.10.2003, 16:39][quote=betterworld,14.10.2003, 16:13]... dass das directory, das du durchsuchen moechtest, gar nicht existiert.[/quote]
Neenee, find(1) ist nicht so mitfühlend.[/quote]
Ich schrieb da oben eben nur von dem directory, das man durchsuchen moechte. Dieses wird an find(1) immer als erstes Argument angegeben. Und wenn es nicht existiert, wird eine Fehlermeldung ausgegeben. Mehr hab ich nicht gesagt.
Und wenn Dir diese Verwendungsweise fremd ist und Du immer _alles_ (naemlich / ) durchsuchst, dann tust Du mir leid.
betterworld
 2003-10-29 13:17
#63200 #63200
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Mir faellt gerade ein, dass es auch aus dem Grunde kaum moeglich ist, Softlinkcounts zu speichern, da das procfs (also /proc/ in Unix) ganz heavy use of Softlinks macht. Wenn man da zu jedem Linkziel einen Counter verwalten wuerde, waere das ganz schoen ineffizient und, wenn man sich dumm anstellt, sogar selbstinduzierend.
Crian
 2003-10-29 13:49
#63201 #63201
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Stimmt...

Was passiert eigentlich, wenn man eine Datei a hat und einen Softlink b auf a anlegt, dann die Datei a löscht und einen Softlink a auf b anlegt? Lässt er das zu? Meckert er? (Hab gerade kein Linux zur Hand...)

halt hab ich doch, ich boote mal den Linuxrechner und teste das... *g
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Crian
 2003-10-29 14:02
#63202 #63202
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Aha... er macht es, stellt die beiden Links in der Konsole aber in rot dar.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
snarf
 2003-10-29 14:03
#63203 #63203
User since
2003-08-14
77 Artikel
BenutzerIn
[default_avatar]
[quote=Crian,29.10.2003, 12:49]Stimmt...

Was passiert eigentlich, wenn man eine Datei a hat und einen Softlink b auf a anlegt, dann die Datei a löscht und einen Softlink a auf b anlegt? Lässt er das zu? Meckert er? (Hab gerade kein Linux zur Hand...)

halt hab ich doch, ich boote mal den Linuxrechner und teste das... *g[/quote]
nööö ... das läßt [U|Li]nix ganz einfach zu (ist schon ein braves System *g). Und warum auch nicht: Link a ist ja dann ein Link auf b, wobei b ein sym-link auf eine nicht vorhandene Datei ist.

So ein Link hat ja auch nicht viel mit dem eigentlichen Namen zu tun sondern mit den dahinterliegenden Inodes (sofern mein Gedächtnis noch einigermassen zuverlässig arbeitet)

Beide Links werden somit als fehlerhaft angezeigt - völlig korrekt.

ReadU, snarf
betterworld
 2003-10-29 16:30
#63204 #63204
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=Crian,29.10.2003, 12:49]Was passiert eigentlich, wenn man eine Datei a hat und einen Softlink b auf a anlegt, dann die Datei a löscht und einen Softlink a auf b anlegt? Lässt er das zu? Meckert er? (Hab gerade kein Linux zur Hand...)[/quote]
Das musst Du gar nicht so umstaendlich mit anlegen und loeschen machen. Niemand verbietet Dir, einen Link auf eine nichtexistente Datei anzulegen. Das ist dann ein Broken Symlink. Und wenn Du eine Schleife hast, wie in Deiner Beschreibung, muesste er beim Versuch, auf die Datei zuzugreifen, eigentlich sagen, dass es zuviele Linkebenen sind. Ich habe noch nicht ausprobiert, wie viele Ebenen noch dereferenziert werden, aber in diesem Fall waeren es unendlich viele.\n\n

<!--EDIT|betterworld|1067437856-->
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2003-10-14 13:10.