Bonjour, je suis pas encore à l'aise avec le scripting shell et j'ai besoin de faire un script shell qui liste les répertoires contenant un répertoire spécifique, merci d'avance pour votre aide.
Stephane
Bonjour, je suis pas encore à l'aise avec le scripting shell et j'ai besoin de faire un script shell qui liste les répertoires contenant un répertoire spécifique, merci d'avance pour votre aide.
Stephane
Bonjour,
à quel point n'es-tu pas à l'aise ?
qu'as-tu essayé ?
tu peux déjà chercher des solutions abordables avec find...
après, il faut savoir quel format de sortie tu veux.
edit: il faudrait aussi nous parler de la hiérarchie des répertoires où chercher.
Salut,
comme dit par n_bah, il faudrait plus d'infos.
Tu as le choix en gros entre find qui est adapté ou des boucles for imbriquées.
Dans l'attente de plus d'infos et d'exemples.
Sous Kubuntu 20.04
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 find / -type d -name "*LEMOTIF*" 2>/dev/null | xargs -I £ dirname £
pas besoin de xargs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ find "$depart" -type d -name 'nomDuRepertoire' -printf '%h\n' 2>/dev/null
Bonjour,
merci pour vos réponses, je vais être un peu plus précis concernant ma question:
en gros j'ai une arborescence de ce style:
Mon script doit pouvoir sortir la liste des répertoires contenant le rep_spec et cette liste doit être un fichier txt avec les noms des répertoires, dans notre exemple, le contenu du fichier txt sera:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 rep_source rep1 rep2 rep_spec rep3 rep_spec rep4
J'espère que je suis plus clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 rep2 rep3
Je débute complètement en scripting shell (je n'ai jamais eu de formation pour l'instant) et je viens de commencer un taf où j'ai entre autre ce script à faire assez rapidement, c'est pour cela que je vous sollicite.
@ N_BaH, peux tu me détailler ta commande avec find, la variable $depart prendra le nom de chaque répertoire (rep1, rep2, etc ...), que signifie la partie " -printf '%h\n' 2>/dev/null" ?
Merci d'avance pour votre aide
Cordialement
- la variable $depart prend comme valeur le nom du répertoire de ... départ !
- la description de -printf est dans le man de find, et
- > /dev/null redirige la sortie d'erreur (répertoire non lisible par l'utilisateur...) vers /dev/null (cf. man null)
NB: ton urgence n'est pas la nôtre (c'est dans la charte du forum).
nous allons t'aider, pas faire à ta place.
@N_BaH, merci pour ta réponse.
Je ne vous demande pas de le faire à ma place, je veux juste des pistes pour m'orienter.
Je vais donc chercher avec les éléments que tu m'as donné.
Encore merci à tous pour vos réponses
tu connais l'environnement utilisé ?je viens de commencer un taf
parce que, selon que tu es sur du GNU (Linux) ou sur du POSIX (il existe un sous-forum dédié), certaines commandes ne fonctionnent pas de la même manière, n'ont pas les mêmes options, ou ont les mêmes mais pas pour indiquer la même chose![]()
Je ne pense jamais à ces options... pourtant bien pratiques...et, non, en bash plus besoin d'imbriquer des boucles avec shopt -s globstar (et nullglob pour ne pas faire une boucle "à vide").
Sous Kubuntu 20.04
D'après le début d'expérience que j'ai eue avec AIX, c'est plus contraignant que linux.
Si tu veux exactement le même script dans les 2 environnements, àmha, il vaut mieux commencer avec AIX. Si ça marche avec AIX, ça devrait marcher avec Debian.
Et si bash n'est pas installé sur AIX et que tu n'as pas le droit de l'y installer, il faudra peut-être le faire avec ksh...
Ne dit-on pas "qui peut le moins peut le plus" ?![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager