Da file name a directory che lo contiene

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
l1q1d
Master
Master
Messaggi: 1862
Iscritto il: lun 21 feb 2005, 0:00
Località: In uno spazio n-dimesionale
Contatta:

Da file name a directory che lo contiene

Messaggio da l1q1d »

Come si fa a risalire da il nome del file alla directory che lo contiene?
del tipo ho:
/home/nome/dir/altradir/nomefile
come faccio ad avere solo
/home/nome/dir/altradir/

con un bashscript naturalmente?

wasabi
Linux 2.x
Linux 2.x
Messaggi: 243
Iscritto il: gio 25 nov 2004, 0:00

Messaggio da wasabi »

Sorry!

Avatar utente
l1q1d
Master
Master
Messaggi: 1862
Iscritto il: lun 21 feb 2005, 0:00
Località: In uno spazio n-dimesionale
Contatta:

Messaggio da l1q1d »

Non si capisce la domanda? :twisted:

kyakan
Linux 2.x
Linux 2.x
Messaggi: 209
Iscritto il: sab 1 gen 2005, 0:00
Contatta:

Messaggio da kyakan »

$ dirname /home/nome/dir/altradir/nomefile
/home/nome/dir/altradir

Se sei in un bash puoi fare

BASEDIR="`dirname /home/nome/dir/altradir/nomefile`"

Se il file è nella directory corrente puoi scrivere

BASEDIR="$(dirname $(pwd)/nomefile)"

... questo ti serviva vero?

Avatar utente
l1q1d
Master
Master
Messaggi: 1862
Iscritto il: lun 21 feb 2005, 0:00
Località: In uno spazio n-dimesionale
Contatta:

Messaggio da l1q1d »

si infatti grazie mille!

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

kyakan ha scritto:Se il file è nella directory corrente puoi scrivere

BASEDIR="$(dirname $(pwd)/nomefile)"
in questo non fai prima con:
BASEDIR=$( pwd )
? :o

ps: se invece ti servisse solo il nome file, il comando è basename.

kyakan
Linux 2.x
Linux 2.x
Messaggi: 209
Iscritto il: sab 1 gen 2005, 0:00
Contatta:

Messaggio da kyakan »

useless ha scritto:
kyakan ha scritto:Se il file è nella directory corrente puoi scrivere

BASEDIR="$(dirname $(pwd)/nomefile)"
in questo non fai prima con:
BASEDIR=$( pwd )
? :o

ps: se invece ti servisse solo il nome file, il comando è basename.
si .. ovviamente ... ma magari il path è composto precedentemente da altre variabili ... etc ..

Rispondi