BASH: come far ricavare i dati di una partizione ad uno script?

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Sargonsei
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2527
Iscrizione: domenica 17 febbraio 2008, 13:56

BASH: come far ricavare i dati di una partizione ad uno script?

Messaggio da Sargonsei »

Salve a tutti.
Se voglio conoscere: Punto di Mount, Etichetta, Partizione, ed UUID della partizione che sto esplorando, ci apro dentro un terminale, impartisco i comandi

Codice: Seleziona tutto

$ pwd # Percorso assoluto cartella di lavoro
/media/lubuntu24l4/ntfs01/iso
$ PdM='ntfs01'; lsblk -o mountpoint,LABEL,PATH,UUID |grep ${PdM} # Dato il punto di mount, trova LABEL, PATH e UUID corrispondenti.
/media/lubuntu24l4/ntfs01           ntfs01 /dev/sdb1   3488D35488D3136A
$ 
Qualcuno sa dirmi come potrei fare per farlo fare ad uno script in modo che funzioni in qualsiasi cartella, a prescindere da quale sia il punto di mount quando comandi vengono eseguiti?
Ringrazio sin d'ora chi mi aiuterà.
Postare l'output di un comando significa inserire nel post: la riga in cui si digita il comando, tutto l'output, e la riga in cui il prompt ricompare.
Hardware e Sistema Operativo di Sargonsei: http://sargonsei.altervista.org/hardwar ... r-fisso-2/
Comandi da tenere a portata di mano: http://sargonsei.altervista.org/655-2/
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2875
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: BASH: come far ricavare i dati di una partizione ad uno script?

Messaggio da rai »

Ciao.
Correggimi se non ho capito: c'è uno script che naviga nel file system e ha bisogno di estrarre programmaticamente dati della partizione in cui si trova la cartella corrente, a prescindere da dove (quanto a fondo) si trovi questa cartella nell'albero del file system.
Confermi?
Avatar utente
Sargonsei
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2527
Iscrizione: domenica 17 febbraio 2008, 13:56

Re: BASH: come far ricavare i dati di una partizione ad uno script?

Messaggio da Sargonsei »

rai ha scritto:
oggi, 16:31
Ciao.
Correggimi se non ho capito: c'è uno script che naviga nel file system e ha bisogno di estrarre programmaticamente dati della partizione in cui si trova la cartella corrente, a prescindere da dove (quanto a fondo) si trovi questa cartella nell'albero del file system.
Confermi?
Quasi...
Lo script non naviga, lo metto io dove voglio io, quindi, fino ad oggi, i dati relativi alla partizione li ho forniti io personalmente modificando lo script prima di lanciarlo, ma io vorrei fare in modo che sia lo script stesso a trovare i dati relativi alla partizione, in modo da non doverlo modificare ogni volta che lo metto in una partizione diversa.
Postare l'output di un comando significa inserire nel post: la riga in cui si digita il comando, tutto l'output, e la riga in cui il prompt ricompare.
Hardware e Sistema Operativo di Sargonsei: http://sargonsei.altervista.org/hardwar ... r-fisso-2/
Comandi da tenere a portata di mano: http://sargonsei.altervista.org/655-2/
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2875
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: BASH: come far ricavare i dati di una partizione ad uno script?

Messaggio da rai »

Capito.
Ho solo un dubbio ma credo di sapere come farlo.
Sono al cellulare adesso, appena posso mettermi al PC faccio la prova e torno qui a riferire.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2875
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: BASH: come far ricavare i dati di una partizione ad uno script?

Messaggio da rai »

Farei così:

Codice: Seleziona tutto

mntpnts=$(mount | grep -oP '^/dev/.{1,10} on \K.+?(?= )' | sort -r)
mntpnt=$(for m in $mntpnts; do [[ $PWD == $m* ]] && echo $m && break; done)
lsblk -o mountpoint,label,path,uuid | grep $mntpnt
nel primo rigo metto nella variabile mntpnts tutti i punti di mount utilizzati in questo momento;
nel secondo rigo ciclo tra quei punti di mount e ne ricavo quello corrispondente al path corrente;
poi uso il mountpoint ricavato per isolare con grep la partizione voluta nell'output di lsblk.
Prova se funziona nella realtà
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti