View previous topic :: View next topic |
Author |
Message |
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 6:19 pm Post subject: [bash] Aide pour script (Resolu) |
|
|
BOnjour...
Je suis en train de faire un script en BASH.
Le but du script est d'Effacer des mp3 dans un dossier donne.
Pour l'instant ca donnerait ' ls -R DOSSIER | grep mp3 '
Mais le probleme c'est que je veux effacer directement TOUS les Mp3 qu'il trouve.. Question de liberer de la place sur le serveur.
SI quelqu'un était capable de M'aider
EDIT: Bon..Je précise un peu... J'ai un dossier des utilisateurs sur /export/home/Sec1, Sec2 , etc Jusqua 5.. Ce sont les dossier des éleves classés par niveaux. je veux un script qui efface TOUS les MP3 qu'ils ont dans leurs dossiers _________________ User #29433
Last edited by geforce on Thu Apr 14, 2005 8:18 pm; edited 4 times in total |
|
Back to top |
|
|
Starch Guru
Joined: 26 Feb 2003 Posts: 539 Location: Rennes, France
|
Posted: Thu Apr 14, 2005 6:21 pm Post subject: |
|
|
Code: |
find . -name "*.mp3" -exec rm {} \;
|
_________________ - Vous aurez beau dire... Y'a pas qu'd'la pomme... Y'aurait pas aussi d'la betterave ?
- Si, y'en a aussi |
|
Back to top |
|
|
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 6:22 pm Post subject: |
|
|
OMg la reponse rapide en 30 secondes
J'essaye et je te rivnes avec ca .. Merci ! _________________ User #29433 |
|
Back to top |
|
|
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 6:26 pm Post subject: |
|
|
Yeahh !!! Merci !!! _________________ User #29433 |
|
Back to top |
|
|
Trevoke Advocate
Joined: 04 Sep 2004 Posts: 4099 Location: NY, NY
|
Posted: Thu Apr 14, 2005 6:32 pm Post subject: |
|
|
Un petit (resolu) dans le titre alors, et tu nous mets [bash] au lieu de (bash) et on t'aimera toute notre vie. _________________ Votre moment detente
What is the nature of conflict? |
|
Back to top |
|
|
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 7:11 pm Post subject: |
|
|
Bon je sentais le besoin de vous compliquer la vie
Nah c'est pas vrai c,est juste que j'ai encore besoin d'aide avec mon script.
Code: |
#! /bin/bash
POSPAR1=${dossier}
POSPAR2=${extensions}
for extension in ${extensions}; do
find ${dossier} -name $extension -exec rm {} \;
done
|
COmme vous pouvez le constater... J"ESSAYE de trouve comment faire pour specifier plusieurs extensions avec 1 commande.. J"essaye comme ca mais J'ai encore besoin de votre aide ... Genre pour utiliser les variables que je suis pas sur pantoute et aussi pour le loop le l'espece "d"array" que je dois faire pour mes extensions. _________________ User #29433
Last edited by geforce on Thu Apr 14, 2005 7:15 pm; edited 2 times in total |
|
Back to top |
|
|
LostControl l33t
Joined: 02 Mar 2004 Posts: 885 Location: La Glane, Suisse
|
Posted: Thu Apr 14, 2005 7:14 pm Post subject: |
|
|
geforce wrote: | Bon je sentais le besoin de vous compliquer la vie
Nah c'est pas vrai c,est juste que j'ai encore besoin d'aide avec mon script.
Code: |
#! /bin/bash
POSPAR1=${dossier}
POSPAR2=${extensions}
for $extension in $extensions; do
find ${dossier} -name ${extension} -exec rm {} \;
done
|
COmme vous pouvez le constater... J"ESSAYE de trouve comment faire pour specifier plusieurs extensions avec 1 commande.. J"essaye comme ca mais J'ai encore besoin de votre aide ... Genre pour utiliser les variables que je suis pas sur pantoute et aussi pour le loop le l'espece "d"array" que je dois faire pour mes extensions. |
Vire déjà le '$' de "for $extension in" _________________ http://www.jaqpot.net
http://www.fail2ban.org |
|
Back to top |
|
|
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 7:15 pm Post subject: |
|
|
Code: | #! /bin/bash
POSPAR1=${dossier}
POSPAR2=${extensions}
for extension in ${extensions}; do
find ${dossier} -name $extension -exec rm {} \;
done |
?? Comme ca ?. Et pour l'array je fais quoi ? Je dois utiliser quel genre de separateurs.. En fait... Comment je m'y prends ? _________________ User #29433 |
|
Back to top |
|
|
sireyessire Advocate
Joined: 20 Mar 2003 Posts: 2991 Location: back in Paris, France
|
Posted: Thu Apr 14, 2005 7:23 pm Post subject: |
|
|
geforce wrote: | Code: | #! /bin/bash
POSPAR1=${dossier}
POSPAR2=${extensions}
for extension in ${extensions}; do
find ${dossier} -name $extension -exec rm {} \;
done |
?? Comme ca ?. Et pour l'array je fais quoi ? Je dois utiliser quel genre de separateurs.. En fait... Comment je m'y prends ? |
c'est quoi POSPAR1 et POSPAR2? _________________ I never think of the future. It comes soon enough.
Albert Einstein
Try simpler first
Shockley |
|
Back to top |
|
|
kernelsensei Bodhisattva
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Thu Apr 14, 2005 7:25 pm Post subject: |
|
|
sireyessire wrote: | geforce wrote: | Code: | #! /bin/bash
POSPAR1=${dossier}
POSPAR2=${extensions}
for extension in ${extensions}; do
find ${dossier} -name $extension -exec rm {} \;
done |
?? Comme ca ?. Et pour l'array je fais quoi ? Je dois utiliser quel genre de separateurs.. En fait... Comment je m'y prends ? |
c'est quoi POSPAR1 et POSPAR2? |
en fait il doit vouloir utiliser $1 et $2 _________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join' |
|
Back to top |
|
|
sireyessire Advocate
Joined: 20 Mar 2003 Posts: 2991 Location: back in Paris, France
|
Posted: Thu Apr 14, 2005 7:28 pm Post subject: |
|
|
kernel_sensei wrote: | sireyessire wrote: | geforce wrote: | Code: | #! /bin/bash
POSPAR1=${dossier}
POSPAR2=${extensions}
for extension in ${extensions}; do
find ${dossier} -name $extension -exec rm {} \;
done |
?? Comme ca ?. Et pour l'array je fais quoi ? Je dois utiliser quel genre de separateurs.. En fait... Comment je m'y prends ? |
c'est quoi POSPAR1 et POSPAR2? |
en fait il doit vouloir utiliser $1 et $2 |
bon ben alors ça doit être bon ça
Code: | #! /bin/bash
dossier=$1;
extensions=$2;
for i in ${extensions}; do
find ${dossier} -name $i -exec rm {} \;
done |
[edit] en fait il faut un while au début qui récup toutes les extensions demandées, ou alors il y a un moyen de lui faire gober la liste en argument;
exemple: prgm /usr mp3 avi ogg _________________ I never think of the future. It comes soon enough.
Albert Einstein
Try simpler first
Shockley |
|
Back to top |
|
|
Piaf Tux's lil' helper
Joined: 03 Aug 2003 Posts: 76 Location: Sophia Antipolis
|
Posted: Thu Apr 14, 2005 7:45 pm Post subject: |
|
|
sireyessire wrote: | ou alors il y a un moyen de lui faire gober la liste en argument;
exemple: prgm /usr mp3 avi ogg |
prgm /usr "*.mp3 *.abi *.ogg" _________________ Est-ce que c'est toi John Wayne, ou est-ce que c'est moi... |
|
Back to top |
|
|
sireyessire Advocate
Joined: 20 Mar 2003 Posts: 2991 Location: back in Paris, France
|
Posted: Thu Apr 14, 2005 7:51 pm Post subject: |
|
|
Piaf wrote: | sireyessire wrote: | ou alors il y a un moyen de lui faire gober la liste en argument;
exemple: prgm /usr mp3 avi ogg |
prgm /usr "*.mp3 *.abi *.ogg" |
non ça pour lui avec le for c'est qu'un élément.
Code: | $for i in "mp3 avi ogg"; do
> echo $i;
> done
mp3 avi ogg
|
mais avec des simple quotes c'est bon
donc utilisation:
prgm /usr '*.mp3 *.avi'
et le script:
Code: | #! /bin/bash
dossier=$1;
extensions=$2;
for i in ${extensions}; do
find ${dossier} -name $i -exec rm {} \;
done |
_________________ I never think of the future. It comes soon enough.
Albert Einstein
Try simpler first
Shockley
Last edited by sireyessire on Thu Apr 14, 2005 7:57 pm; edited 3 times in total |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Thu Apr 14, 2005 7:53 pm Post subject: |
|
|
dans ce cas dossier=$1 un ptit shift et extentions=$* non?
[edit] suis en retard...[/edit] |
|
Back to top |
|
|
sireyessire Advocate
Joined: 20 Mar 2003 Posts: 2991 Location: back in Paris, France
|
Posted: Thu Apr 14, 2005 7:56 pm Post subject: |
|
|
kwenspc wrote: | dans ce cas dossier=$1 un ptit shift et extentions=$* non?
[edit] suis en retard...[/edit] |
ouais c'est pas bête mais comment on exclut le $1? _________________ I never think of the future. It comes soon enough.
Albert Einstein
Try simpler first
Shockley |
|
Back to top |
|
|
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 8:05 pm Post subject: |
|
|
Ben normalement s'il les fait en ordre il va prendre le premier pour $1 pis le $* pour le reste ? _________________ User #29433 |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Thu Apr 14, 2005 8:05 pm Post subject: |
|
|
shift fait qu'on envois le $1 à la benne |
|
Back to top |
|
|
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 8:17 pm Post subject: |
|
|
YEah le code fonctionne... J'vous donne le code source qui fonctionne des que j'arrive chez moi!
Phil _________________ User #29433 |
|
Back to top |
|
|
Piaf Tux's lil' helper
Joined: 03 Aug 2003 Posts: 76 Location: Sophia Antipolis
|
Posted: Thu Apr 14, 2005 8:17 pm Post subject: |
|
|
@kwenspc +1 pour ta solution, c'est simple et élégant _________________ Est-ce que c'est toi John Wayne, ou est-ce que c'est moi... |
|
Back to top |
|
|
geforce l33t
Joined: 29 Dec 2003 Posts: 653 Location: Canada
|
Posted: Thu Apr 14, 2005 9:32 pm Post subject: |
|
|
Voici ma version qui mache:
Code: |
#! /bin/bash
# Ecrit par GeForce, 2005
POSPAR1=${dossier}
POSPAR2=${extensions}
for extension in $extensions; do
find ${dossier} -name $extension -exec rm {} \;
done
|
Et je le lance avec : ./programme.sh /home/ "*.mp3 *.exe *.asx" etc etc.
Ca marche nickel.
Merci! _________________ User #29433 |
|
Back to top |
|
|
|