Link simbolici

linkUn post didascalico con uno spiegone per un mio amcico che viene da Windows. E un’ottima occasione per provare Lubit.

Per evitare un’inutile accumulo di tensione spasmodica con conseguenze imprevedibili vi dico subito che il test è stato superato brillantemente. Ho tenuto d’occhio Conky e l’uso della RAM non ho mai superato 145MB. Adesso, su Ubuntu RR con 4 schede di Firefox, Gedit, Nautilus, Eog (visualizzatore di immagini) e qualche altra utility sono a 620MB.
Devo anche confessarvi un’altra cosa: ho installato Gedit su Lubit e Conky ha fatto un salto da 145 a 198MB. Era una prova, non so nemmeno se serve, Leafpad è OK.

Linux ha ereditato da Unix una cosa meravigliosa (una delle tante): i link. Adesso non è che vi racconto tutto quello che ci sarebbe da dire sui link, hard e simbolici. Semplicemente vediamo un paio di cose di quest’ultimo tipo, il più giovane, quello che ottenete facendo click con il tasto destro sull’icona di un file e scegliendo Crea collegamento. Questo nell’ambiente grafico, io che sono vecchio… OK, uso il terminale.

Sono partito da uno script semplicissimo in Python, ds.py:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os, os.path, sys

print "La directory corrente è:\n", os.path.abspath(os.curdir)
scrdir = os.path.dirname(os.path.realpath(sys.argv[0]))
print "\nLa directory dello script è\n", scrdir

e questo è lo screenshot del terminale. Sì, ho fatto un pasticcio: manca la riga del primo comando, che sarebbe python ds.py.

p0

Le prime righe sono come ce le aspettiamo, anche per chi viene da Windows. Poi le cose cambiano: chmod +x ds.py rende lo script eseguibile, cosa che si potrebbe fare anche con click con tasto destro / Proprietà / Permessi / Consentire l’esecuzione….
Questo in virtù della shebang, la prima riga dello script.
Segue la prova di esecuzione ./ds.py, tutto OK.
A questo punto mi sono trasferito nella directory ~/bin. Altra particolarità di Linux (e prima di Unix): se c’è bin nella tua home viene automaticamente inserita nella PATH (all’avvio, quindi non potete pretendere di averla subito disponibile appena creata (ci sarebbe un discorso lungo da fare, diciamo che dovete ri-logarvi)).
Lì ho creato il link DS e l’ho testato. OK, come pure quando mi sono spostato nella home e in altre directories (non presenti nell’immagine ma provate e vedrete che funziona tutto).

A questo punto lo spiegone dei link sarebbe finito. Da studiare bene che la prossima volta interrogo, nèh! Anzi compito in classe.

Però visto che ci sono continuo, faccio un altro test. Questa volta voglio creare un eseguibile. Un compilatore leggero ce l’ho, newLISP che ultimamente è cambiato parecchio, vediamo (s-d.nl):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/usr/bin/newlisp

(println "La directory corrente è:\n" (real-path "."))
(set 'nf (main-args 0))
(set 'rnf (real-path nf true))
(set 'tree (parse rnf "/"))
(pop tree -1)
(set 'dir (join tree "/"))
(println "\nLa directory del programma è:\n" dir)
(exit)

che produce questi risultati:

nl

Notare l’errore che ottengo lanciando l’eseguibile dalla directory in cui si trova; non sono riuscito a capirne la ragione. Poi tutto come per Python.

OK, questo è tutto. Solo più due comunicazioni per la regia:

Bit3Lux potrebbe pensare che sto barando; in effetti gli avevo comunicato che facevo altro, solo rimandato, prossimamente…
A me sembra che il post sia venuto bene, lo riciclo anche sull’altro blog, sperando che nessuno se ne accorga 😉

Note:

  • questo post è stato pubblicato sul blog dell’amico Bit3Lux, qui: Link simbolici;
  • ho provato anche la versione interpretata, problemi diversi ma anche lì risposta diversamente corretta.
Posta un commento o usa questo indirizzo per il trackback.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: