Un petit peu d'aide avec un petit script bash - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 18-01-2004 à 20:40:51
ArSuniK a écrit : Euh... tu essaies de faire quoi avec ce script ? |
Citation : Le but est de prendre tout les fichiers dans le sous répertoire et les mettre dans le répertoire parent... |
Marsh Posté le 18-01-2004 à 20:43:37
Si tu veux que les fichier de TOUS les sous reps soient mis dans le rep parent
find folder -type f -exec mv {} folder/../ \;
Je pense que ce qui ne marche pas dans ton script c est la premiere boucle for. Mais soit plus precise sur ce que tu veux faire avec ton script
Marsh Posté le 18-01-2004 à 20:48:41
j'ai essayer avec ca mv folder/* folder/../ mais ca ne donne pas l'effet escompter...
le script doit avoir un nombre variable de paramètres qui sont pour les répertoires existants dans le répertoire courant. Pour chacun des répertoires nommés, le script doit déplacer tous ses fichiers au répertoire courant. Si les noms des fichiers sont identiques, le script doit concatener les fichiers sous un même nom dans le répertoire courant. Quand les répertoires nommés sont vides, ils doivent être détruits..
Il doit pas en manquer beaucoup à ce que j'ai fait, mais remarquer je débute alors j'ai un peu de mal à voir...
Marsh Posté le 18-01-2004 à 20:54:53
cd $folder
cd ..
mv $folder/* .
Marsh Posté le 18-01-2004 à 20:58:34
ReplyMarsh Posté le 18-01-2004 à 21:03:45
_Faust_ a écrit : |
1:01 mikala@andrea ~% cd test |
Marsh Posté le 18-01-2004 à 21:07:28
je sais pas, j'ai tapé ces commandes cd $folder
cd ..
mv $folder/*
mais pas dans un script...faut croire qu'il a pas aimé ca...
mais c'est pas grave, c'est un environnement de test, et ca roule même sur VMware...
Marsh Posté le 18-01-2004 à 21:08:03
bon tu nous expliques comment tu as cassé ta distribution la ?
tu n'étais pas en root pour faire ton script quand meme ?
Marsh Posté le 18-01-2004 à 21:09:28
_Faust_ a écrit : je sais pas, j'ai tapé ces commandes cd $folder |
et yavait koi dans ta variable $folder ???
Marsh Posté le 18-01-2004 à 21:14:32
j'était en root, dans /root/test
ls
1 2 3 4 5 6 7 patate patate1 1.sh 2.sh 3.sh test.sh
j'ai tapé cd $folder
cd ..
mv $folder/*
et voilà....
bon, je suis entrain de réinstaller là et je vais vérifier le tout...
Marsh Posté le 18-01-2004 à 21:16:00
tu comprends donc la necessité de ne _pas_ etre en root _sauf_ strict necessaire.
Marsh Posté le 18-01-2004 à 21:29:11
ouai, effectivement, c'est bien la première chose qu'on apprend...
mais....dans le script ca aurait pas fait la même chose?
Marsh Posté le 18-01-2004 à 21:32:07
hahahaha....le con....comme vous devez rire...
entk, moi je suis plié en 2...
aller, on lâche pas....
Bon, s'il y a des bons samaritains qui aide les universitaires en première session, on lève la main!!
Marsh Posté le 18-01-2004 à 21:39:49
_Faust_ a écrit : ouai, effectivement, c'est bien la première chose qu'on apprend... |
justement non cela n'aurait pas fait la meme chose.
cela n'aurait fait que ce que tu as demandé .
a savoir allez au repertoire indiqué , remonter d'un repertoire déplace les fichier du premier repertoire dans le repertoire actuel .
la tu la executer dans un shell on ne sais meme pas qu'elle était la valeur de la variable $folder ...
Marsh Posté le 18-01-2004 à 22:04:45
dès que je fini mon installation, je réessai ca....
il me manquerai quoi par la suite, une comparaison et si la valeur est vraie, je fait un cat ?
genre ,euh... if fichier_dans_sous_rep = fichier_dans_rep
then cat fichier_dans_sous_rep >> fichier_dans_rep
Marsh Posté le 21-01-2004 à 13:24:01
Voici un script qui fait le nettoyage que tu veux faire.
On lui spécifie un répertoire racine à nettoyer.
Tous les fichiers des sous-répertoires sont remontés à la racine. Sin un fichier de même nom existe déjà, les deux fichiers sont concatanés.
Les sous-répertoire ainsi vidés sont détruits.
Code :
|
Marsh Posté le 18-01-2004 à 17:06:14
j'arrive pas à voir ce qui marche pas la dedans...
Le but est de prendre tout les fichiers dans le sous répertoire et les mettre dans le répertoire parent...
QQ'un peut m'enligner un peu?