|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
Bonjour,
Je suis débutant dans l'art d'écrire en shell ^^ et j'aimerais réaliser un find mais manuellement. En fait, ce serait un find bien limité, pusique je n'aurais qu'un étage de sous-répertoires : répertoirePrincipal : sousRep_1 sousRep_2 ... sousRep_n (chaqu'un ayant un certain nombre de fichiers) Ce serait à priori une boucle parcourant récursivement les sous-répertoires et une parcourant ensuite tous les fichiers de ces répertoires. Seulement, je ne sais pas trop quelles conditions d'arrêt mettre dans ces boucles, comment dire "quand tu auras parcouru tous les sousRépertoires" ou de façon similaire pour la deuxième boucle "quand tu auras parcouru tous les fichiers". C'est peut-être simple, mais je ne vois vraiment pas. Aussi, j'aimerais savoir, et c'est peut-être lié, comment entrer dans le premier répertoire, puis le deuxième, etc sans connaître leurs noms. D'avance, prière de m'excuser si mes questions sont absurdes ![]() Et merci à l'âme charitable qui me mettra sur la voie |
|
|
00
|
|
|
#2 | ||
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Salut.
Ce bout de code pourra peut être te servir : Code :
Cordialement, Idriss |
||
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
Je vais regarder ça de plus près
Merci. |
|
|
00
|
|
|
#4 | ||||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 059 ![]() |
GRRR...
il faut juste définitivement oublier d'utiliser ls dans un script, parce que sinon : Code :
Code :
|
||||
|
|
10
|
|
|
#5 |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Effectivement
(merci).
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
Idriss :
Le code est très bien, encore merci ! En fait j'ai plus qu'une question au final, de la même façon qu'on parcourt tous les éléments du répertoire REP, on va parcourir les éléments du sous-répertoire courant. La condition sera if [ -f $k ] pour dire que si on est sur un FICHIER cette fois on fait "blablabla", bref ça nickel. Par contre, ma seule question est alors, comment entrer dans ce sous-répertoire lorsque le curseur est sur ce dernier, donc avant de rentrer dans ma deuxième boucle. Il faudrait que je fasse une sorte de SOUSREP = "sous-répertoire courant" mais je ne sais justement pas comment. Je suppose que c'est grâce à mon $i ? N_BaH : Ton code passe en revue tous les éléments du répertoire ? Et pourquoi éviter ls en fait ("je vais encore passer pour un noob") :p ? J'ai toujours du mal à comprendre tes codes lol, désolé. |
|
|
00
|
|
|
#7 | |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Citation:
Après si tu veux parcourir un répertoire autre que le répertoire courant dans lequel tu exécutes le script, tu peux t'arranger avec un cd avant la boucle. J'ai adapté mon code en fonction de la remarque pertinente de N_Bah. Après on peut parfois être amené à utiliser ls pour récupérer plus d'informations (les droits des fichiers, l'utilisateur propriétaire, etc). |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
ha ok effectivement, très bonne remarque de N_BaH qui m'aura empêcher de me prendre la tête à savoir pourquoi ça foirait
![]() Bon je vais changer ça tout de suite. Merci à vous deux |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
Tiens au point ou j'en suis, comment peut-on obtenir le nom du répertoire courant ?
pwd donne le chemin et pas que le nom... |
|
|
00
|
|
|
#10 | |||
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Citation:
:Code :
|
|||
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
lol oui ,j'avais oublié ma question en cours de route ^^
Merci |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
euh, quand je fais un pwd dans ma deuxième boucle il n'a pas l'air d'être entré dans le sous-répertoire...
|
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Frédéric Brugmans Informaticien multitâche Inscription : février 2005 Messages : 661 ![]() |
|
|
|
10
|
|
|
#14 | |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
Citation:
|
|
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 059 ![]() |
Citation:
Citation:
|
||
|
|
10
|
|
|
#16 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 31 ![]() |
En fait, faire pwd ést débile, car c'est comme quand on fait un find, le dossier courant reste celui du début donc faire un pwd m'induisait en erreur.
Et là apparemment tout fonctionne. Donc un grand merci à vous tous et un merci particulier à Idriss |
|
|
00
|
|
|
#17 | |||
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Bonjour.
Citation:
Exemple : Code :
.Cordialement, Idriss |
|||
|
00
|
|
|
#18 | |
|
Membre Expert
![]() frederic frances Inscription : juin 2009 Messages : 1 703 ![]() |
Au lieu de
pourquoi ne pas faire?
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis. http://www.improetcompagnie.com/publ...ctacles-6.html Citation:
http://www.emacswiki.org/ Attends de voir ce qui vas sortir de: http://www.pushmid.com |
|
|
|
10
|
|
|
#19 | |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 972 ![]() |
Citation:
...
|
|
|
00
|
|
|
#20 | ||
|
Membre Expert
![]() frederic frances Inscription : juin 2009 Messages : 1 703 ![]() |
Citation:
je m'interrogeais sur la raison c'est tout.
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis. http://www.improetcompagnie.com/publ...ctacles-6.html Citation:
http://www.emacswiki.org/ Attends de voir ce qui vas sortir de: http://www.pushmid.com |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com