qqun peut-il me dire comment écrire un script qui permettrait ( sous
Ubuntu ) d'effacer plusieurs dossiers avec une seule commande ?
Je n'ai aucune notion de programmation, on s'en doute... Je suppose
qu'il y aura un ou plusieurs rm -f /chemin du ou des dossiers...?
Précision : je ne souhaite pas effacer les dossiers mais seulement leur
contenu.
qqun peut-il me dire comment écrire un script qui permettrait ( sous Ubuntu ) d'effacer plusieurs dossiers avec une seule commande ? Je n'ai aucune notion de programmation, on s'en doute... Je suppose qu'il y aura un ou plusieurs rm -f /chemin du ou des dossiers...?
Précision : je ne souhaite pas effacer les dossiers mais seulement leur contenu.
Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce statique ou pas ?
Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite.
Birdy -- "Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it ;)" Linus Torvalds - 1996
Gump wrote:
Ave et bonnes fêtes à tous,
qqun peut-il me dire comment écrire un script qui permettrait ( sous
Ubuntu ) d'effacer plusieurs dossiers avec une seule commande ?
Je n'ai aucune notion de programmation, on s'en doute... Je suppose
qu'il y aura un ou plusieurs rm -f /chemin du ou des dossiers...?
Précision : je ne souhaite pas effacer les dossiers mais seulement leur
contenu.
Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce
statique ou pas ?
Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite.
Birdy
--
"Only wimps use tape backup: _real_ men just upload their important
stuff on ftp, and let the rest of the world mirror it ;)"
Linus Torvalds - 1996
qqun peut-il me dire comment écrire un script qui permettrait ( sous Ubuntu ) d'effacer plusieurs dossiers avec une seule commande ? Je n'ai aucune notion de programmation, on s'en doute... Je suppose qu'il y aura un ou plusieurs rm -f /chemin du ou des dossiers...?
Précision : je ne souhaite pas effacer les dossiers mais seulement leur contenu.
Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce statique ou pas ?
Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite.
Birdy -- "Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it ;)" Linus Torvalds - 1996
Gump
| | Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce | statique ou pas ?
Euh...hem...pardon mais je ne comprends pas. Je voudrais simplement, par une seule commande, pouvoir vider de leur contenu des dossiers ou sous-dossiers, par ex. /home/user/dossier1/sous_dossier /home/user/dossier2/sous-dossier/sous_sous_dossier /home/user/dossier3
etc... ( il y en aurait une dizaine )
| | Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite. |
Je te crois sur parole ! mais j'en suis incapable. D'où mon appel...
Gump
|
| Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce
| statique ou pas ?
Euh...hem...pardon mais je ne comprends pas. Je voudrais simplement, par
une seule commande, pouvoir vider de leur contenu des dossiers ou sous-dossiers,
par ex. /home/user/dossier1/sous_dossier
/home/user/dossier2/sous-dossier/sous_sous_dossier
/home/user/dossier3
etc... ( il y en aurait une dizaine )
|
| Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite.
|
Je te crois sur parole ! mais j'en suis incapable.
D'où mon appel...
| | Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce | statique ou pas ?
Euh...hem...pardon mais je ne comprends pas. Je voudrais simplement, par une seule commande, pouvoir vider de leur contenu des dossiers ou sous-dossiers, par ex. /home/user/dossier1/sous_dossier /home/user/dossier2/sous-dossier/sous_sous_dossier /home/user/dossier3
etc... ( il y en aurait une dizaine )
| | Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite. |
Je te crois sur parole ! mais j'en suis incapable. D'où mon appel...
Gump
Denis Leger
Le Sun, 23 Dec 2007 15:17:13 +0100,
| | Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce | statique ou pas ?
Euh...hem...pardon mais je ne comprends pas. Je voudrais simplement, par une seule commande, pouvoir vider de leur contenu des dossiers ou sous-dossiers, par ex. /home/user/dossier1/sous_dossier /home/user/dossier2/sous-dossier/sous_sous_dossier /home/user/dossier3
etc... ( il y en aurait une dizaine )
| | Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite. |
Je te crois sur parole ! mais j'en suis incapable. D'où mon appel...
un truc du genre :
find . ! -type d -exec rm -f {} ;
devrait marcher, non ?
-- Denis Léger MP Maths -- Brest
Le Sun, 23 Dec 2007 15:17:13 +0100,
|
| Quelle recherche veut tu faire ? Ou doit se limiter la recherche ?
Est ce | statique ou pas ?
Euh...hem...pardon mais je ne comprends pas. Je voudrais simplement,
par une seule commande, pouvoir vider de leur contenu des dossiers ou
sous-dossiers, par ex. /home/user/dossier1/sous_dossier
/home/user/dossier2/sous-dossier/sous_sous_dossier
/home/user/dossier3
etc... ( il y en aurait une dizaine )
|
| Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez
vite. |
Je te crois sur parole ! mais j'en suis incapable.
D'où mon appel...
| | Quelle recherche veut tu faire ? Ou doit se limiter la recherche ? Est ce | statique ou pas ?
Euh...hem...pardon mais je ne comprends pas. Je voudrais simplement, par une seule commande, pouvoir vider de leur contenu des dossiers ou sous-dossiers, par ex. /home/user/dossier1/sous_dossier /home/user/dossier2/sous-dossier/sous_sous_dossier /home/user/dossier3
etc... ( il y en aurait une dizaine )
| | Bref, en bash entre for, find et rm tu dois pouvoir y arriver assez vite. |
Je te crois sur parole ! mais j'en suis incapable. D'où mon appel...
un truc du genre :
find . ! -type d -exec rm -f {} ;
devrait marcher, non ?
-- Denis Léger MP Maths -- Brest
Luc.Habert.00__arjf
"Gump" :
| find . ! -type d -exec rm -f {} ;
J'ai précisé que pour moi c'est du javanais ! où est-ce qu'on indique les chemins des dossiers à vider ?? Merci mais sans un petit commentaire je ne peux rien faire
Find est un programme qui récurse à travers une arborescence de répertoires, et en appliquant des actions aux fichiers vérifiants certains critères. En l'occurence, cela se lit ainsi :
find . récurser sous le répertoire courant
! -type d sélectionner les fichiers autres que les répertoires (le « ! » est une négation, et le « -type d » sélectionne les répertoires)
-exec rm -f {} ; exécuter la commande « rm -f » sur chacun des fichiers sélectionnés par le filtre ci-dessus (le « {} » signifie que find doit insérer le nom du fichier à cette place là dans la ligne de commande, et le « ; » marque la fin de la ligne de commande (il faut mettre un « » devant pour qu'il ne soit pas interprété par le shell))
"Gump" :
| find . ! -type d -exec rm -f {} ;
J'ai précisé que pour moi c'est du javanais ! où est-ce qu'on
indique les chemins des dossiers à vider ??
Merci mais sans un petit commentaire je ne peux rien faire
Find est un programme qui récurse à travers une arborescence de répertoires,
et en appliquant des actions aux fichiers vérifiants certains critères. En
l'occurence, cela se lit ainsi :
find . récurser sous le répertoire courant
! -type d sélectionner les fichiers autres que les
répertoires (le « ! » est une négation, et le
« -type d » sélectionne les répertoires)
-exec rm -f {} ; exécuter la commande « rm -f » sur chacun des
fichiers sélectionnés par le filtre ci-dessus
(le « {} » signifie que find doit insérer le
nom du fichier à cette place là dans la ligne
de commande, et le « ; » marque la fin de la
ligne de commande (il faut mettre un « »
devant pour qu'il ne soit pas interprété par
le shell))
J'ai précisé que pour moi c'est du javanais ! où est-ce qu'on indique les chemins des dossiers à vider ?? Merci mais sans un petit commentaire je ne peux rien faire
Find est un programme qui récurse à travers une arborescence de répertoires, et en appliquant des actions aux fichiers vérifiants certains critères. En l'occurence, cela se lit ainsi :
find . récurser sous le répertoire courant
! -type d sélectionner les fichiers autres que les répertoires (le « ! » est une négation, et le « -type d » sélectionne les répertoires)
-exec rm -f {} ; exécuter la commande « rm -f » sur chacun des fichiers sélectionnés par le filtre ci-dessus (le « {} » signifie que find doit insérer le nom du fichier à cette place là dans la ligne de commande, et le « ; » marque la fin de la ligne de commande (il faut mettre un « » devant pour qu'il ne soit pas interprété par le shell))
Denis Beauregard
Le Sun, 23 Dec 2007 11:56:06 +0100, "Gump" écrivait dans fr.comp.os.linux.configuration:
Ave et bonnes fêtes à tous,
qqun peut-il me dire comment écrire un script qui permettrait ( sous Ubuntu ) d'effacer plusieurs dossiers avec une seule commande ? Je n'ai aucune notion de programmation, on s'en doute... Je suppose qu'il y aura un ou plusieurs rm -f /chemin du ou des dossiers...?
Précision : je ne souhaite pas effacer les dossiers mais seulement leur contenu.
disons que tu veux effacer le contenu de /home/toto/dossier/ et /home/toto/dossier1/
tu crées le fichier effacer tu y copies
rm /home/toto/dossier/* rm /home/toto/dossier1/*
et tu fais chmod +x effacer
find permet de trouver des fichiers si on ne sait pas où ils se trouvent, mais d'après tes commentaires, tu connais ces emplacements.
Denis
-- 0 Denis Beauregard - // Les Français d'Amérique du Nord - www.francogene.com/genealogie--quebec/ | French in North America before 1722 - www.francogene.com/quebec--genealogy/ / | Maintenant sur cédérom, début à 1770 (Version 2008) oo oo Now on CD-ROM, beginnings to 1770 (2008 Release)
Le Sun, 23 Dec 2007 11:56:06 +0100, "Gump" <gump@free.fr> écrivait
dans fr.comp.os.linux.configuration:
Ave et bonnes fêtes à tous,
qqun peut-il me dire comment écrire un script qui permettrait ( sous
Ubuntu ) d'effacer plusieurs dossiers avec une seule commande ?
Je n'ai aucune notion de programmation, on s'en doute... Je suppose
qu'il y aura un ou plusieurs rm -f /chemin du ou des dossiers...?
Précision : je ne souhaite pas effacer les dossiers mais seulement leur
contenu.
disons que tu veux effacer le contenu de /home/toto/dossier/ et
/home/toto/dossier1/
tu crées le fichier effacer
tu y copies
rm /home/toto/dossier/*
rm /home/toto/dossier1/*
et tu fais
chmod +x effacer
find permet de trouver des fichiers si on ne sait pas où ils se
trouvent, mais d'après tes commentaires, tu connais ces
emplacements.
Denis
--
0 Denis Beauregard -
// Les Français d'Amérique du Nord - www.francogene.com/genealogie--quebec/
| French in North America before 1722 - www.francogene.com/quebec--genealogy/
/ | Maintenant sur cédérom, début à 1770 (Version 2008)
oo oo Now on CD-ROM, beginnings to 1770 (2008 Release)
Le Sun, 23 Dec 2007 11:56:06 +0100, "Gump" écrivait dans fr.comp.os.linux.configuration:
Ave et bonnes fêtes à tous,
qqun peut-il me dire comment écrire un script qui permettrait ( sous Ubuntu ) d'effacer plusieurs dossiers avec une seule commande ? Je n'ai aucune notion de programmation, on s'en doute... Je suppose qu'il y aura un ou plusieurs rm -f /chemin du ou des dossiers...?
Précision : je ne souhaite pas effacer les dossiers mais seulement leur contenu.
disons que tu veux effacer le contenu de /home/toto/dossier/ et /home/toto/dossier1/
tu crées le fichier effacer tu y copies
rm /home/toto/dossier/* rm /home/toto/dossier1/*
et tu fais chmod +x effacer
find permet de trouver des fichiers si on ne sait pas où ils se trouvent, mais d'après tes commentaires, tu connais ces emplacements.
Denis
-- 0 Denis Beauregard - // Les Français d'Amérique du Nord - www.francogene.com/genealogie--quebec/ | French in North America before 1722 - www.francogene.com/quebec--genealogy/ / | Maintenant sur cédérom, début à 1770 (Version 2008) oo oo Now on CD-ROM, beginnings to 1770 (2008 Release)
Gump
Find est un programme qui récurse à travers une arborescence de répertoires, et en appliquant des actions aux fichiers vérifiants certains critères. En l'occurence, cela se lit ainsi :
find . récurser sous le répertoire courant
! -type d sélectionner les fichiers autres que les répertoires (le « ! » est une négation, et le « -type d » sélectionne les répertoires)
-exec rm -f {} ; exécuter la commande « rm -f » sur chacun des fichiers sélectionnés par le filtre ci-dessus (le « {} » signifie que find doit insérer le nom du fichier à cette place là dans la ligne de commande, et le « ; » marque la fin de la ligne de commande (il faut mettre un « » devant pour qu'il ne soit pas interprété par le shell))
C'est sympa d'expliquer et ça m'apprend des choses. mais si je comprends bien, il est impossible d'indiquer dans ce script plusieurs dossiers à vider. Je dois à chaque fois me placer dans le répertoire à vider ( par un cd ) pour exécuter ce fichier ! Autant utiliser rm, alors...
Find est un programme qui récurse à travers une arborescence de
répertoires, et en appliquant des actions aux fichiers vérifiants
certains critères. En l'occurence, cela se lit ainsi :
find . récurser sous le répertoire courant
! -type d sélectionner les fichiers autres que les
répertoires (le « ! » est une négation, et
le « -type d » sélectionne les répertoires)
-exec rm -f {} ; exécuter la commande « rm -f » sur chacun
des
fichiers sélectionnés par le filtre
ci-dessus (le « {} » signifie que find doit
insérer le nom du fichier à cette place là
dans la ligne de commande, et le « ; »
marque la fin de la ligne de commande (il
faut mettre un « » devant pour qu'il ne
soit pas interprété par le shell))
C'est sympa d'expliquer et ça m'apprend des choses. mais si je comprends
bien, il est impossible d'indiquer dans ce script plusieurs dossiers à
vider. Je dois à chaque fois me placer dans le répertoire à vider ( par
un cd ) pour exécuter ce fichier ! Autant utiliser rm, alors...
Find est un programme qui récurse à travers une arborescence de répertoires, et en appliquant des actions aux fichiers vérifiants certains critères. En l'occurence, cela se lit ainsi :
find . récurser sous le répertoire courant
! -type d sélectionner les fichiers autres que les répertoires (le « ! » est une négation, et le « -type d » sélectionne les répertoires)
-exec rm -f {} ; exécuter la commande « rm -f » sur chacun des fichiers sélectionnés par le filtre ci-dessus (le « {} » signifie que find doit insérer le nom du fichier à cette place là dans la ligne de commande, et le « ; » marque la fin de la ligne de commande (il faut mettre un « » devant pour qu'il ne soit pas interprété par le shell))
C'est sympa d'expliquer et ça m'apprend des choses. mais si je comprends bien, il est impossible d'indiquer dans ce script plusieurs dossiers à vider. Je dois à chaque fois me placer dans le répertoire à vider ( par un cd ) pour exécuter ce fichier ! Autant utiliser rm, alors...
Luc.Habert.00__arjf
Gump :
C'est sympa d'expliquer et ça m'apprend des choses. mais si je comprends bien, il est impossible d'indiquer dans ce script plusieurs dossiers à vider.
Il suffit de les mettre à la place du « . » dans la ligne de commande donnée, séparés par des espaces.
Plus généralement, pour exécuter la même commande sur un ensemble de strings, tu peux faire :
for f in liste des arguments ; do commande à exécuter sur "$f" done
en mettant « "$f" » dans la commande à l'endroit où substituer chacun des éléments de la liste.
Gump :
C'est sympa d'expliquer et ça m'apprend des choses. mais si je comprends
bien, il est impossible d'indiquer dans ce script plusieurs dossiers à
vider.
Il suffit de les mettre à la place du « . » dans la ligne de commande
donnée, séparés par des espaces.
Plus généralement, pour exécuter la même commande sur un ensemble de
strings, tu peux faire :
for f in liste des arguments ; do
commande à exécuter sur "$f"
done
en mettant « "$f" » dans la commande à l'endroit où substituer chacun des
éléments de la liste.
C'est sympa d'expliquer et ça m'apprend des choses. mais si je comprends bien, il est impossible d'indiquer dans ce script plusieurs dossiers à vider.
Il suffit de les mettre à la place du « . » dans la ligne de commande donnée, séparés par des espaces.
Je vais essayer.
Plus généralement, pour exécuter la même commande sur un ensemble de strings, tu peux faire :
for f in liste des arguments ; do commande à exécuter sur "$f" done
en mettant « "$f" » dans la commande à l'endroit où substituer chacun des éléments de la liste.
Oui, bon, là je suis largué !
Merci, Gump
Denis Leger
Le Sun, 23 Dec 2007 17:22:43 +0100,
| un truc du genre : | | find . ! -type d -exec rm -f {} ; | | devrait marcher, non ? |
J'ai précisé que pour moi c'est du javanais ! où est-ce qu'on indique les chemins des dossiers à vider ??
Tu remplaces le '.' après le find par le nom du dossier à vider (ou alors tu te positionne dans ce dossier avec cd <nom du dossier>, la commande va éliminer tous les fichiers contenus dans ce dossier et dans les sous-dossiers qu'il contient, sans éliminer les sous-dossier. C'est bience que tu voulais, non ?
Merci mais sans un petit commentaire je ne peux rien faire ( je sais, je pourrais étudier les scripts bash, mais pour écrire 1 seul script, j'hésite !)
Essaye quand même man find, c'est mieux pour comprendre...
-- Denis Léger MP Maths -- Brest
Le Sun, 23 Dec 2007 17:22:43 +0100,
| un truc du genre :
|
| find . ! -type d -exec rm -f {} ;
|
| devrait marcher, non ?
|
J'ai précisé que pour moi c'est du javanais ! où est-ce qu'on
indique les chemins des dossiers à vider ??
Tu remplaces le '.' après le find par le nom du dossier à vider (ou
alors tu te positionne dans ce dossier avec cd <nom du dossier>, la
commande va éliminer tous les fichiers contenus dans ce dossier et dans
les sous-dossiers qu'il contient, sans éliminer les sous-dossier. C'est
bience que tu voulais, non ?
Merci mais sans un petit commentaire je ne peux rien faire ( je sais,
je pourrais étudier les scripts bash, mais pour écrire 1 seul script,
j'hésite !)
Essaye quand même man find, c'est mieux pour comprendre...
| un truc du genre : | | find . ! -type d -exec rm -f {} ; | | devrait marcher, non ? |
J'ai précisé que pour moi c'est du javanais ! où est-ce qu'on indique les chemins des dossiers à vider ??
Tu remplaces le '.' après le find par le nom du dossier à vider (ou alors tu te positionne dans ce dossier avec cd <nom du dossier>, la commande va éliminer tous les fichiers contenus dans ce dossier et dans les sous-dossiers qu'il contient, sans éliminer les sous-dossier. C'est bience que tu voulais, non ?
Merci mais sans un petit commentaire je ne peux rien faire ( je sais, je pourrais étudier les scripts bash, mais pour écrire 1 seul script, j'hésite !)
Essaye quand même man find, c'est mieux pour comprendre...
-- Denis Léger MP Maths -- Brest
Gump
tu crées le fichier effacer tu y copies
rm /home/toto/dossier/* rm /home/toto/dossier1/*
et tu fais chmod +x effacer
Merci, c'est ce qu'il me fallait ! fonctionne impec.
tu crées le fichier effacer
tu y copies
rm /home/toto/dossier/*
rm /home/toto/dossier1/*
et tu fais
chmod +x effacer
Merci, c'est ce qu'il me fallait ! fonctionne impec.