Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: odysseus - 26.01.14 - klo:13.52
-
Eli nyt tuli pulma.
Pitäisi jotenkin saada selville mistä kaikkialta tiedostoon on linkitetty. (siis ln tai ln -s).
Mitenköhän tämän tekisi? Kyseessä on "suljettu hakemiston haara", eli esimerkiksi nain
hakemisto
|_alihakemisto
| |_tiedosto
| |_alihakemisto_alihakemisto
| |_linkki_tiedostoon
|_toinen_alihakemisto
|_linkki_tiedostoon
Ja tuosta pitäisi siis jotenkin pystyä pitämään kirjaa, että mistä kaikkialta on linkitetty "tietosto":on.
Edit: Onkohan ainoa tapa tehdä joku skripti, joka käy läpi hakemistojen tiedostot ja lukee ne linkit ja tekee niistä jonkinlaisen tietokannan..... Sit se johonkin "hourly" ajoon tmv?
-
Käytä find komentoa ja -samefile parametria:
find hakemisto/ -samefile tiedosto
Tai sitten voit katsoa inode numeron ls -i komennolla ja etsiä find -inum komennolla.
-
Käytä find komentoa ja -samefile parametria:
find hakemisto/ -samefile tiedosto
Symbolisten linkkien löytämiseksi tarvitaan lisäksi parametri -L:
find -L hakemisto/ -samefile tiedosto
-
JEP.
Tuotapa pitää kokeilla.
Ongelma on siinä, että nyt pitäisi saada tietoon se, mistä on linkkejä, joka takaa sen, että voiko tiedostoa muokata vai pitääkö johonkin kohteeseen luoda uusi tiedosto kopioimalla alkuperäinen ja sitten muokkaamalla sitä....
Tässä on siis tämmöinen "usean tiedoston hyperlinkkitiedosto"-systeemi ajatuksena (eli esimerkiksi sama header ja footer on useassa tiedostossa, myös joku muu osa siitä voi olla...) ja silloin yhden tiedoston sisältö ei voi muuttua ellei tiedetä mihin se vaikuttaa... Nyt vain pitäisi saada aikaiseksi oikein kevyt ratkaisu (mielellään ilman tietokantaa), joten siksi ajattelin tietty linkkejä (mihin "winukat" ei pysty).
Tutkin asiaa.
-
JEP.
Tuotapa pitää kokeilla.
Ongelma on siinä, että nyt pitäisi saada tietoon se, mistä on linkkejä, joka takaa sen, että voiko tiedostoa muokata vai pitääkö johonkin kohteeseen luoda uusi tiedosto kopioimalla alkuperäinen ja sitten muokkaamalla sitä....
Tässä on siis tämmöinen "usean tiedoston hyperlinkkitiedosto"-systeemi ajatuksena (eli esimerkiksi sama header ja footer on useassa tiedostossa, myös joku muu osa siitä voi olla...) ja silloin yhden tiedoston sisältö ei voi muuttua ellei tiedetä mihin se vaikuttaa... Nyt vain pitäisi saada aikaiseksi oikein kevyt ratkaisu (mielellään ilman tietokantaa), joten siksi ajattelin tietty linkkejä (mihin "winukat" ei pysty).
Tutkin asiaa.
Komento file tunnistaa softlinkin, mutta 'kovaa' linkkiä se ei erottele
jekku@kone25:~$ touch foo.txt
jekku@kone25:~$ ln -s foo.txt bar.txt
jekku@kone25:~$ file bar.txt
bar.txt: symbolic link to `foo.txt'
Kovat linkit mitä ilmeisimmin näet pitkästä listauksesta
jekku@kone25:~$ ls -l foo.txt
-rw-r--r-- 1 jekku jekku 4 tammi 27 17:28 foo.txt
jekku@kone25:~$ ln foo.txt footy.txt
jekku@kone25:~$ ls -l foo.txt
-rw-r--r-- 2 jekku jekku 4 tammi 27 17:28 foo.txt
-
Pahus!
Yli 12 vuotta linux käyttöä ja aina vaan oppii uutta!
En meinaan tiennytkään tuosta "file"-komennosta. Sehän taitaa ratkaista kaiken. Pikku softa vain sen ympärille....
-
En meinaan tiennytkään tuosta "file"-komennosta. Sehän taitaa ratkaista kaiken. Pikku softa vain sen ympärille....
Mikä vika findissa oli? Sen kanssa ei tarvitsisi tehdä skriptiä hakemistorakenteen läpikäyntiin...
-
Yli 12 vuotta linux käyttöä ja aina vaan oppii uutta!
En meinaan tiennytkään tuosta "file"-komennosta.
Hukkaan heitetyt 12-vuotta. file on ihan peruskomentoja selvittää, mitä jokin tiedosto pitää sisällään ilman HEX-editoreita.
Linux (tai muutkaan Unix:it) eivät ole riippuvaisia ns. tiedostopäätteistä.
man file
Linux/Unix -perusteet kannattaa lukaista vaikkapa lehtevinä teoksina (lue: kirjat). Useimpien jakelujen mukana on tarjolla megatavuittain infoa järjestelmään tutustumiseksi. (man info)