|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
Inscription : septembre 2011 Messages : 6 ![]() |
Bonjour/Bonsoir , voila j'ai un projet a faire pour lundi avec le language shell . Voici le sujet :
Voici ce que j'ai fait : Code :
Donc voila ... je sais pas trop quoi faire mais je pense que la ligne Code :
Le problème c'est que je copie ( avec ce script ) les répertoires or je dois avoir QUE les fichiers ... donc j'ai regardé s'il y'avait des commandes pour extraire tous les fichiers de chaque répertoire puis par la suite supprimer ces répertoires mais la j'avou je suis perdu .. Merci par avance pour votre aide Je precise que j'ai un peu pres appris ce language aujourd'hui et que par malheur je suis tomber sur le projet en shell.. |
||||
|
|
01
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 538 ![]() |
on est pas la pour faire tes devoirs, on t'aidera mais après lundi
en plus tu as un début de solution, continues à reflechir pour completer ce qui manque, et utiliser les bonnes methodes aux bons moments... tu vas trouver j'en suis sur... si ça peut t'aider fais le d'abord avec find et tu changera apres ça devrait te guider. |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Bonjour,
Tu peux oublier ls¸cette commande, très pratique dans un terminal, est à proscrire dans un script, car elle génère des complications pour retrouver les noms de fichiers, et est donc source d'erreurs. Bref, dans un script, c'est du poison. Il y a déjà eu beaucoup de questions sur la façon de modifier le nom des fichiers, ici-même. Le principe est identique, toi, tu veux seulement les copier ailleurs... |
|
|
20
|
|
|
#4 | ||
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 986 ![]() |
Bonjour.
Comme dit N_Bah, c'est mieux d'éviter ls ... Tu peux partir sur cette piste (non testé) : Code :
Je te laisse implémenter la suite Ensuite ici, tu trouvera des exercices corrigés ou certains éléments pourront te servir (comme les tests sur les fichiers ou ce genre de chose). Cordialement, Idriss |
||
|
10
|
|
|
#5 |
|
Membre habitué
![]() Étudiant Inscription : août 2011 Messages : 46 ![]() |
Je suis absolument pas un pro du script mais comme ça sans trop réfléchir, je dirais qu'une fonction récursive (je pense à une fonction faisant appel à elle même. Je ne suis pas sûr que le terme soit bien employé...) et une boucle for...done pourrait régler ton problème de recherche récursive.
À toi de voir si ma remarque te sera utile et bon courage pour ton boulot! edit : grilled pour la boucle for. je n'étais pas sûr que les chemins du type "/cheminvers/*" fonctionnaient en sh. Du coups l'idée de la fonction récursive n'est peut être pas nécessaire. À vérifier! Si tu as le droit au bash >=4, regarde du coté des options "shopt ...". |
|
|
20
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
effectivement, pour descendre dans les sous-répertoires, il faudra une fonction récursive.
|
|
|
20
|
|
|
#7 | |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 986 ![]() |
Citation:
Je ne lui ai donné que les premières pistes. Cordialement, Idriss |
|
|
10
|
|
|
#8 | ||
Inscription : septembre 2011 Messages : 6 ![]() |
Merci pour vos aides mais je cherche toujours :/
Code :
|
||
|
|
01
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
qu'est censé faire mkdir ?
test nécessite un argument. tu devrais faire un plan de ce qui doit être fait pour réaliser la tâche assignée, dessiner un arbre de décision... i.e. ne pas coder directement sans savoir où tu vas aller. et lire la documentation : man commande_externe commande_externe --help man bash help commande_interne lire les documents en lien dans ma signature trouver un copie de l'Advanced Bash Scripting ... |
|
|
10
|
|
|
#10 |
Inscription : septembre 2011 Messages : 6 ![]() |
mkdir permet de créer un répertoire..
|
|
|
03
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
je demandais ça dans le cadre de ton script, pas d'une manière générale.
|
|
|
10
|
|
|
#12 |
Inscription : septembre 2011 Messages : 6 ![]() |
Bah dés que les fichiers étaients copiés alors il allait vers le repertoire créer
|
|
|
01
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
tel que tu l'as écrite, cette commande crée un répertoire Fichier_Projet dans le répertoire courant, et tente de recéer /home/.
|
|
|
10
|
|
|
#14 |
Inscription : septembre 2011 Messages : 6 ![]() |
Ah d'accord.
Car en faite je veux parcourir tous les répertoires ( et sous repertoires ) et ils copient tous les fichiers qui les composent vers un nouveau fichier qui faudra compresser dans un même fichier. Faudrais peut etre utiliser la fonction while pour dire que tant qu'il y'a des sous repertoires alors il continue a parcourir |
|
|
10
|
|
|
#15 |
Inscription : septembre 2011 Messages : 6 ![]() |
C'est bon je pense avoir résolu . Merci
|
|
|
01
|
|
|
#16 | |
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
Je vois que tu as bien compris que sous Unix, tout était fichier. Toutefois pour nous, pauvres humains, ta phrase n'est pas super super claire. En plus tu dis que tous les fichiers des divers répertoires seront copiés dans un même fichier/dossier. Mais comment va se comporter ton script si tu as un fichier "repA/toto" et un autre "repB/toto" ? Le second "toto" qui sera copié dans ton dossier de destination écrasera le premier...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
|
|
|
20
|
|
|
#17 |
|
Membre habitué
![]() Étudiant Inscription : août 2011 Messages : 46 ![]() |
Juste pour voir comment tu as résolu le problème, je pense qu'il serait intéressant de publier le résultat de ton travail (après lundi pour éviter de mâcher le travail d'un camarade) histoire de voir la solution apportée à cette exercice et peut être te conseiller pour la prochaine fois !
Edit : gzip ne compresse pas des dossiers, J'en conclus que chaque fichier doit être compressé dans le dossier de destination non ? Je suis curieux de comprendre...
__________________
Carpe Diem |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com