Je voudrais vérifier, dans un script bash, quel type de système de fichiers est un répertoire.
L'idée est quelque chose comme
if [path] is on a [filesystem] filesystem then
filesystem specific command
end if
linux
bash
shell-script
filesystems
Dremor
la source
la source
Réponses:
Utilisez
df
. Vous pouvez lui passer un chemin, et il vous donnera les informations du système de fichiers pour ce chemin. Si vous avez besoin du type de système de fichiers, utilisez le-T
commutateur, comme ceci:Pour extraire le type de système de fichiers, vous pouvez l'analyser (utilisez le
-P
commutateur pour éviter dedf
casser les lignes si la partie périphérique est trop longue):Vous pouvez donc utiliser cette valeur dans une
if
construction comme ceci:Attention, la colonne de périphérique peut contenir des espaces (mais c'est rare), auquel cas l'analyse échouera.
la source
Sur un système avec la commande GNU stat installée (comme avec à peu près n'importe quelle distribution Linux standard), vous pouvez obtenir le type fs pour un fichier donné sans nécessiter aucune analyse en utilisant la
stat
commande:-f
indiquestat
de fournir des informations sur le système de fichiers au lieu du fichier et-c %T
définit le format de sortie pour inclure uniquement le type de système de fichiers lisible par l'homme (%T
).Vous pouvez donc utiliser cela (en bash) comme:
man stat
fournira plus d'informations.la source
Avec
findmnt
(une partie deutil-linux
):Lors de l'utilisation de l'option
si le chemin n'est pas un fichier ou un répertoire de point de montage,findmnt
vérifie les éléments de chemin dans l'ordre inverse pour obtenir le point de montage. Les deux autres options suppriment la ligne d'en-tête:-n, --noheading
et sélectionnez la ou les colonnes à répertorier:-o, --output
df
fromcoreutils
a une option similaire--output=
pour imprimer uniquement certains champs, commefstype
par exemple:il n'y a pas d'option pour supprimer l'en-tête, vous devrez donc diriger la sortie vers par exemple
| sed 1d
la source
findmnt
outil mignon , même avec une sortie TUI de dessin au trait. Merci!