Script bash : liste et test
Résolu
teteve
Messages postés
110
Date d'inscription
Statut
Membre
Dernière intervention
-
teteve Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
teteve Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je m'essaye actuellement à quelques scripts bash.
Je souhaiterais en faire un qui réalise un commande toute simple, mais je bloque...
Le principe :
Je lance le script avec en paramètre un chemin absolu (existant).
Je liste récursivement ce répertoire, et pour chaque "occurrence", si c'est un fichier je fais un chown toto:users, si c'est un répertoire, je fais un chown titi:users.
J'avais donc pensé à quelque chose dans le genre :
#!/bin/bash
for i in $(ls -R $1)
do
if [ -f $i ]
Then
chown toto:users $i
else
chown titi:users $i
fi
done
Mais comme vous vous en doutez, ca marche pô... :)
Je ne sais pas comment lister les répertoires, et récupérer le chemin absolu du fichier/sous-répertoire...
Merci de vos conseils avisés :)
--
" Le plus intelligent est celui qui sait qu'il ne sait pas... "
Teteve, informaticien amateur et passionné
Je m'essaye actuellement à quelques scripts bash.
Je souhaiterais en faire un qui réalise un commande toute simple, mais je bloque...
Le principe :
Je lance le script avec en paramètre un chemin absolu (existant).
Je liste récursivement ce répertoire, et pour chaque "occurrence", si c'est un fichier je fais un chown toto:users, si c'est un répertoire, je fais un chown titi:users.
J'avais donc pensé à quelque chose dans le genre :
#!/bin/bash
for i in $(ls -R $1)
do
if [ -f $i ]
Then
chown toto:users $i
else
chown titi:users $i
fi
done
Mais comme vous vous en doutez, ca marche pô... :)
Je ne sais pas comment lister les répertoires, et récupérer le chemin absolu du fichier/sous-répertoire...
Merci de vos conseils avisés :)
--
" Le plus intelligent est celui qui sait qu'il ne sait pas... "
Teteve, informaticien amateur et passionné
Configuration: Debian Lenny Firefox 2.0.0.13
6 réponses
-
Salut,
find /repertoire -type f -exec chown toto:users {} \; find /repertoire -type d -exec chown titi:users {} \;--
lami20j -
Salut lami20j,
Toujours aussi rapides et efficaces les services de lami20j... :)
Merci bien, je teste ca de suite...
Je reviens si j'ai à redire sur la qualité... :p
Teteve
[edit]
Je reviens... pour confirmer que c'est nickel !! :)
Merci beaucoup...
-
De rien ;-))
-
Me revoilà...
Ptite question... Pour exécuter plusieurs commandes après mon find, je dois faire deux find, ou je peux le faire sur la même ligne ?
find $1 -type f -exec chown toto:users {} \ -exec chmod 660 {} \;
ou
find $1 -type f -exec chown toto:users {} \;
find $1 -type f -exec chmod 660 {} \;
Si c'est possible sur la même ligne, quelle est la syntaxe ? Je n'ai pas tout compris au man en anglais de find...
Merci :)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
find $1 -type f -exec chown toto:users {} \; -exec chmod 660 {} \;;-))
-
nannnnnnnnn
pfffffffffffff
j'avais quasiment testé toutes les possibilités... sauf celle là !!! :s
Merci encore :)