Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Výpis odkazů  (Přečteno 1871 krát)

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Výpis odkazů
« kdy: 28 Dubna 2009, 10:39:18 »
Mimochodem,
kdo přijde na nejjednodušší způsob vypsání všech odkazů, které odkazují do určité složky resp. jejích podsložek?
Například všechny odkazy, které odkazují kamkoliv do /media/disk?

premet

  • Host
Re: Výpis odkazů
« Odpověď #1 kdy: 28 Dubna 2009, 11:10:14 »
Mě napadlo třeba tohle
Kód: [Vybrat]
find /home/prema -type l -exec ls -ld {} \; | grep '\-> /media/disk'

lrwxrwxrwx 1 prema prema 11 28. dub 10.49 /home/prema/links/link1 -> /media/disk
lrwxrwxrwx 1 prema prema 11 28. dub 10.49 /home/prema/links/link2 -> /media/disk
lrwxrwxrwx 1 prema prema 11 28. dub 10.49 /home/prema/links/link3 -> /media/disk
lrwxrwxrwx 1 prema prema 11 28. dub 10.49 /home/prema/link4 -> /media/disk
lrwxrwxrwx 1 prema prema 11 28. dub 10.49 /home/prema/Plocha/link5 -> /media/disk

Nebo tohle je rychlejší, ale není tam celá cesta k souboru
Kód: [Vybrat]
ls -lR | grep '\-> /media/disk'

lrwxrwxrwx   1 prema prema         11 28. dub 10.49 link4 -> /media/disk
lrwxrwxrwx 1 prema prema 11 28. dub 10.49 link1 -> /media/disk
lrwxrwxrwx 1 prema prema 11 28. dub 10.49 link2 -> /media/disk
lrwxrwxrwx 1 prema prema 11 28. dub 10.49 link3 -> /media/disk
lrwxrwxrwx 1 prema prema      11 28. dub 10.49 link5 -> /media/disk
« Poslední změna: 28 Dubna 2009, 11:13:06 od Premet »

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Výpis odkazů
« Odpověď #2 kdy: 28 Dubna 2009, 11:18:47 »
No vida, díky, vyzkouuším...
Celé cesty snad ani nepotřebuju; jde mi o to, že až budu likvidovat 8.04 na sda3, na kterou mám nalinkované různé adresáře od /var/www přes profily thunderbirda a firefoxe až po ... nevím co ještě, tak abych si nějakým jednoduchým způsobem vypsal všechno, co na tom disku používám i v 9.04 (tedy vede tam nějaký odkaz z disku s 9.04) a případně s tím pak něco udělal (přesunul, ...)

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Výpis odkazů
« Odpověď #3 kdy: 28 Dubna 2009, 12:21:20 »
kdyz tohle vyresit nejak obecne neni zas tak jednoduchy... ;)
- ten link nemusi pouzivat absolutni cestu, ale relativni (mozno jakz takz resit prikazem readlink)
- ten link muze ukazovat na jinej link a ten zas na jinek link atd... nektere z tech linku "po ceste" treba mohou byt
  v tom adresari, kterej te zajima, ale nakonec zas muzou ukazovat jinam. otazkou je, jestli te takovy linky (respektive ten na zacatku) zajimaji ci nikoliv
- link muze ukazovat do pozadovane destinace na neexistujici soubor treba i v neexistujicim adresari (jeste lepe pomoci relativni adresy)
...
uz me to prestalo bavit vymyslet  ;D

ale az si to precte ntz, tak se jiste dockame poradneho reseni, on se s nejakym rychlokvasenym prikazem jiste nespokoji.  ;D
« Poslední změna: 28 Dubna 2009, 12:24:07 od kkaarreell »

premet

  • Host
Re: Výpis odkazů
« Odpověď #4 kdy: 28 Dubna 2009, 12:32:34 »
......
ale az si to precte ntz, tak se jiste dockame poradneho reseni, on se s nejakym rychlokvasenym prikazem jiste nespokoji.  ;D
No podle mě zase napíše OMG!! a pastne sem něco lepšího  ;D

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Výpis odkazů
« Odpověď #5 kdy: 28 Dubna 2009, 14:56:10 »
- ten link nemusi pouzivat absolutni cestu, ale relativni (mozno jakz takz resit prikazem readlink)
- ten link muze ukazovat na jinej link a ten zas na jinek link atd...

No, mě bohatě stačí ty linky, které v sobě nesou absolutní odkaz, začínající na /media/disk. Nemám jich v tuhle chvíli zas tak moc, ale za chvíli jistě zapomenu, kam jsem co dal. Znáte to, ne? Takže až budu z disku s 8.10 dělat pouze datový disk a v souvislosti s tím současná data přesouvat někam jinam, tak si musím zároveň podle toho zaktualizovat všechny odkazy, které mi na ta data vedou. A případné zřetězené linky se tím přece změní samy (když změním jeden odkaz, změním tím samozřejmě i všechny odkazy, které ho nějakým způsobem používají, to dá rozum).
« Poslední změna: 28 Dubna 2009, 15:00:30 od mka »

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Výpis odkazů
« Odpověď #6 kdy: 30 Dubna 2009, 11:43:24 »
Tak pořád čekám na toho ntz...
Nebo snad chcete říct, že v linuxu není pro hledání odkazů žádná obdoba obyčejného "obsahuje text"?

nettezzaumana

  • Host
Re: Výpis odkazů
« Odpověď #7 kdy: 30 Dubna 2009, 12:27:47 »
## u hardlinku je to jednoduche, akorat se vyhledaji stejne inody, u symlinku me
## nenapada nic jineho nez "brute-force" metoda nize, ktera vyhleda vsechny symlinky
## v /usr odkazujici do /lib

find /usr/ -type l -exec ls -l {} \; | perl -ne 's@^.[^/]*@@; next if not /-> \/lib/; print'

ps. jak rikal karlik, tak problem muze bejt se relativni cestama, ale pri trose snahy by to slo vyresit taky

nettezzaumana

  • Host
Re: Výpis odkazů
« Odpověď #8 kdy: 30 Dubna 2009, 12:37:36 »
nic jineho nez brute-force metoda u symlinku neni mozna .. nicmene v perlu to osetri File::Spec->canonpath() .. viz `man File::Spec`

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Výpis odkazů
« Odpověď #9 kdy: 30 Dubna 2009, 18:52:24 »
Jo, dík, vypadá to slibně.

 

Provoz zaštiťuje spolek OpenAlt.