Risposte:
Usa df
. Puoi passargli un percorso e ti darà le informazioni sul filesystem per quel percorso. Se hai bisogno del tipo di filesystem, usa l' -T
opzione, in questo modo:
$ df -T test
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda2 ext4 182634676 32337180 141020160 19% /home
Per estrarre il tipo di filesystem, puoi analizzarlo (usa l' -P
interruttore per evitare di df
spezzare le linee se la parte del dispositivo è troppo lunga):
$ df -PT test | awk 'NR==2 {print $2}'
ext4
Quindi puoi usare quel valore in un if
costrutto in questo modo:
if [ "$(df -PT "$path" | awk 'NR==2 {print $2}')" = "ext4" ] ; then
it is an ext4 filesystem
fi
Attenzione che la colonna del dispositivo può contenere spazi (ma è raro), nel qual caso l'analisi non riuscirà.
Su un sistema con il comando stat GNU installato (come con qualsiasi distribuzione Linux standard), è possibile ottenere il tipo fs per un dato file senza richiedere alcun analisi usando il stat
comando:
stat -f -c %T filename
-f
indica stat
di fornire informazioni sul file system anziché sul file e -c %T
imposta il formato di output in modo che includa solo il tipo di file system leggibile ( %T
).
Quindi potresti usarlo (in bash) come:
if [[ $(stat -f -c %T filename) == ext4 ]]; then
# ext4 specific command
fi
man stat
fornirà ulteriori informazioni.
Con findmnt
(parte di util-linux
):
findmnt -no fstype -T /path/to/file
Quando si utilizza l'opzione
-T, --target pathse il percorso non è un file o una directory mountpoint,
findmnt
controlla gli elementi del percorso in ordine inverso per ottenere il mountpoint. Le altre due opzioni eliminano la riga di intestazione: -n, --noheading
e selezionano le colonne da elencare:-o, --output
df
da coreutils
ha un'opzione simile --output=
per stampare solo alcuni campi, come fstype
ad esempio:
df --output=fstype /path/to/file
non esiste alcuna opzione per rimuovere l'intestazione, quindi dovrai reindirizzare l'output ad es | sed 1d
findmnt
strumento carino , anche con output TUI di disegno a tratteggio. Grazie!