Jak vytvořit unikátní id pro adresář

Aramys

Jak vytvořit unikátní id pro adresář
« kdy: 09. 02. 2016, 19:40:44 »
Ahoj. Potřeboval bych poradit, nenapadá někoho, jak by šlo vytvořit nějaké unikátní id (buď číslo nebo string je mi to jedno) pro název adresáře umístěného v nějaké cestě ?

Příklad
Kód: [Vybrat]
/root/foo            # UID 46487
/root/foo/bar      # UID 25487
/root/foo/bar/foo # UID 87987
Prostě záleží nejen na názvu ale taky na umístnění. Pokud někoho něco napadne prosím o tip.


ehmmm

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #1 kdy: 09. 02. 2016, 20:13:13 »
Hash cele cesty?

robotron

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #2 kdy: 09. 02. 2016, 20:48:59 »
číslo nebo string => string => pouzit tu cestu? he?

Pavel Tisnovsky

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #3 kdy: 09. 02. 2016, 20:55:24 »
Pokud to ma byt na jednom FS, muzes si vytahnout cislo inode (viz napriklad ls -i), jinak hash se vsemi z toho plynoucimi riziky

Aramys

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #4 kdy: 09. 02. 2016, 21:00:11 »
Hash cele cesty?
A jak se to dela ? Díky


Aramys

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #5 kdy: 09. 02. 2016, 21:01:00 »
Pokud to ma byt na jednom FS, muzes si vytahnout cislo inode (viz napriklad ls -i), jinak hash se vsemi z toho plynoucimi riziky
Jaké rizika máte na mysly ?

Pavel Tisnovsky

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #6 kdy: 09. 02. 2016, 21:19:32 »
Pokud to ma byt na jednom FS, muzes si vytahnout cislo inode (viz napriklad ls -i), jinak hash se vsemi z toho plynoucimi riziky
Jaké rizika máte na mysly ?

Pokud se hashovaci funkce zvoli spatne, bude dochazet ke kolizim (ono tedy k nim teoreticky dojde vzdycky i pri dobrem hashovani, ale to chce mit skutecne stesti). Zrovna adresare maji specifickou vlastnost, ze jejich prefix se porad opakuje, dobra hesovaci funkce s tim ale pocita (v teto oblasti bych rekl ze i md5 je dostatecne dobra, i kdyz pro jine ucely uz moc ne). Jake je vlastne omezeni na ta cisla? int64 nebo tak neco?

Aramys

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #7 kdy: 09. 02. 2016, 21:30:57 »
Omezení je dané pouze délkou názvu suboru, ten hash bude vlastně název souboru. Nikde ale nemůžu najít jak se to dělá. Normalní příkaz na adresář mi vrací chybu, že soubor je adresář :(

ehmmm

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #8 kdy: 09. 02. 2016, 21:42:45 »
Omezení je dané pouze délkou názvu suboru, ten hash bude vlastně název souboru. Nikde ale nemůžu najít jak se to dělá. Normalní příkaz na adresář mi vrací chybu, že soubor je adresář :(

No a v cem to pises a o co se pokousis?
Obecne hashovaci je funkce je funkce, ktera dostane blok dat (napr. string) a vrati neco jako dlouhe cislo nebo string. Delka vysledku zalezi na pouzite funkci. Nedavno tu o tom byla diskuze, kde se jeden pokousel spojit vysledky dvou ruznych hashovacich funkci (coz by v tvem pripade bylo docela v pohode, ale o tom se diskutovalo tam a sem bych to netahal).

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #9 kdy: 09. 02. 2016, 23:24:05 »
Použijte UUID, to je pro takovéhle případy dělané.

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #10 kdy: 09. 02. 2016, 23:50:21 »
Nové forum vypadá odporně a je to samá reklama. Vážně bylo nutné přesně okopírovat barvy Ubuntu? ... ale poradím.

Na jednom serveru jsem řešil jak zakládat velké množství unikátních uživatelů a nakonec jsem použil tvar u0123456789 generovaný spojením písmenka a příkazu date +%s . Když nebudeš generovat víc než adresář za sekundu tak to bude fungovat.

j

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #11 kdy: 09. 02. 2016, 23:53:31 »
Proc tam nedas celou tu cestu, jak tu bylo receno, string to je ... a unikatni v ramci danyho uloziste zcela jiste taky. Navic pak nemusis vymejslet, jak bude ID prevadet zpet na cestu ...

Aramys

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #12 kdy: 10. 02. 2016, 14:56:30 »
Jak jsem psal, nejde to, píše to, že se jedná o adresář a jiná rada tady nepadla..

Re:Jak vytvořit unikátní id pro adresář
« Odpověď #13 kdy: 10. 02. 2016, 15:05:24 »
jiná rada tady nepadla..
Byly tady minimálně tři jiné rady – hash cesty, inode adresáře a UUID.

i-PRESS

  • ***
  • 100
  • NodeJS, Python, Perl, Lua, PHP
    • Zobrazit profil
Re:Jak vytvořit unikátní id pro adresář
« Odpověď #14 kdy: 10. 02. 2016, 15:07:36 »
Jak jsem psal, nejde to, píše to, že se jedná o adresář a jiná rada tady nepadla..


Ukážete nám, jak ten kód na tvorbu hash vypadá? Strkáte tam opravdu cestu jako string? Nebo při použití bez hash - pouze cesty, jde opravdu o string cesty?