Script shell

Fermé
Utilisateur anonyme - Modifié par MiGoK le 13/03/2012 à 19:54
 Utilisateur anonyme - 17 mars 2012 à 12:32
Bonjour,

Alors voila je débute totalement avec les script shell, et je souhaiterais récupérer le type d'un fichier (répertoire, lien, exécutable..).
ls -F affiche les fichier du répertoire courant, avec comme dernier caractère pour chaque fichier: / * ou @, qui définit le type. J aimerais donc extraire ce caractère et l'insérer dans une variable..

j'appel mon programme de cette manière :
./test_type.sh fichier
fichier : fichier dont on veux récuperer le type.

Merci d'avance


A voir également:

2 réponses

miramaze Messages postés 1429 Date d'inscription mercredi 29 juillet 2009 Statut Contributeur Dernière intervention 1 mai 2022 92
Modifié par miramaze le 15/03/2012 à 23:55
Salut, il me semblait qu'il existait une option dans une commande pour afficher le type dossier, fichier etc... , mais je ne retrouve pas, un faux souvenir probablement. Pour répondre à ton problème, on peut utiliser la commande file, ce qui nous donne :
#!/bin/sh 

filetype='' 

output='file -b $1' 

if [[ $output =~ "symbolic link" ]] 
then 
filetype='l' 
elif [[ $output =~ "directory" ]] 
then 
filetype='d' 
else 
filetype='f' 
fi 

echo "File type : "$filetype 


Attention, à la ligne output='file -b $1', ce sont des guillemets inversés, on ne voit pas bien ici.

Et donc au final, tu l'as compris on a : f=fichier, d=dossier et l=lien symbolique.

A toi de jouer si tu veux d'autres spécifications.
All software sucks.
Alan Cox
0
merci de ta réponse.
Au final j'avais finis pas trouvé un truc un peu similaire, avec un test :


if [ -d $1] -> répertoire
if [ -f $1 ] -> fichier ordinaire
etc

les différents test possible sur le type d'un fichier sont expliqués dans "man test".
Bye
0