Tester l'accès à un fichier en bash

Fermé
gnugo Messages postés 145 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 8 décembre 2014 - 28 juil. 2014 à 11:34
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 - 28 juil. 2014 à 13:05
Bonjour,

Y a t-il un moyen de tester l'accès à un fichier en bash ?

J'ai un script qui travaille sur une liste de fichiers et j'aimerais qu'il me dise :
Si le fichier existe
Si le fichier existe mais est illisible
Si le fichier n'existe pas
Si il ne peut pas le déterminer car un problème de droit l'en empêche, par exemple un dossier sans le droit d'exécution qui permet de le parcourir


Merci d'avance
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 409
28 juil. 2014 à 11:41
0
gnugo Messages postés 145 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 8 décembre 2014 46
Modifié par gnugo le 28/07/2014 à 11:53
Salut,

Je reformule ma question : dois-je décomposer chaque chemin et tester tous les sous-dossiers un par un ?
Un test -r ou test -f ça me renvoie le même résultat

En fait je n'arrive pas à différencier le cas où le fichier n'existe pas et le cas où on ne sait pas car il manque le droit 'x' dans un dossier. Donc je me suis dit : seule solution faire un stat sur le/les dossiers pour déterminer avant si on a les droits ou pas.
Mais ça me parait un peu lourd donc je viens demander ici s'il n'y a pas une solution plus simple, un simple test sur le dossier qui pourrait me dire nativement qu'il n'a pas l'accès ?

Je vois comment faire mais pas en un seul coup
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 409
28 juil. 2014 à 11:58
Je reformule ma question :
Tu fais bien, j'étais à 100000 lieues ;-(

Donc je me suis dit : seule solution faire un stat sur le/les dossiers pour déterminer avant si on a les droits ou pas. Mais ça me parait un peu lourd
Ben non, si tu as les droits tu continues, sinon tu sors... je ne vois pas où est la lourdeur là-dedans ;-\
0
gnugo Messages postés 145 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 8 décembre 2014 46
28 juil. 2014 à 12:45
Oui ça va encore, juste que je me disais qu'il y avait peut être une fonction pour le faire proprement en une commande comme c'est quelque chose qui doit revenir souvent

Surtout que je suis sur HP-UX et donc j'ai pas stat :-)
0
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
28 juil. 2014 à 13:05
hello
on peut utiliser perl pour remplacer stat
$ ls -ln
---x-w--wx 1 1000 1000 0 2014-07-28 13:02 a
---xrwx--x 1 1000 1000 0 2014-07-28 13:02 b
$ perl -e ' printf "%o\n" ,(stat($ARGV[0]))[2] & 07777' a
123
$ perl -e ' printf "%o\n" ,(stat($ARGV[0]))[2] & 07777' b
171
0