> Ovviamente questo approccio ha come limite il fatto che la > visualizzazione di ls -l sia quella classica di bash che mostra a cosa > punta un link e che nel nome del file non vi siano caratteri ">". Dimenticavo di specificare che questo esempio non è ricorssivo, quindi nel caso di link che puntano a link che puntano a file il problema persiste. Per rendere lo strumento ricorsivo basta sostituire all'if il while e a $0 $LINKEDFILE impostandolo propriamente a $0 all'inizio. Fai comunque attenzione che nel caso di link che puntano a se stessi potresti avere casini. Segue esempio modificato. #!/bin/bash # Memorizza in basedir la directory di invocazione del comando LINKEDFILE="$0" BASEDIR=`dirname "$LINKEDFILE"` # Verifica se il comando è un link simbolico while [ -L "$LINKEDFILE" ] do # Estrae il percorso del file linkato. Non accetta ">" nel nome file LINKEDFILE=$(ls -l "$LINKEDFILE" | cut -d'>' -f2 | cut -c2- ) # Verifica se il link è assoluto o relativo if [ "$LINKEDFILE" = "${LINKEDFILE##/}" ] then # se è relativo lo accoda al percorso attuale BASEDIR=$BASEDIR/`dirname "$LINKEDFILE"` else # se è assoluto sostituisce il percorso attuale BASEDIR=`dirname "$LINKEDFILE"` fi done # Visualizza il percorso determinato echo $BASEDIR > Ciao > Flavio Visentin -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx