Script bash : liste et test

Résolu
teteve Messages postés 123 Statut Membre -  
teteve Messages postés 123 Statut Membre -
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 :)
A voir également:

6 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

find /repertoire -type f -exec chown toto:users {} \;
find /repertoire -type d -exec chown titi:users {} \;
--
lami20j
3
teteve Messages postés 123 Statut Membre 40
 
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...
1
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
De rien ;-))
1
teteve Messages postés 123 Statut Membre 40
 
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 :)
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,
find $1 -type f -exec chown toto:users {} \; -exec chmod 660 {} \;
;-))
1
teteve Messages postés 123 Statut Membre 40
 
nannnnnnnnn

pfffffffffffff

j'avais quasiment testé toutes les possibilités... sauf celle là !!! :s

Merci encore :)
1