Shell linux, commande find
Résolu/Fermé
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
-
9 févr. 2010 à 20:25
chris79 Messages postés 97 Date d'inscription lundi 3 octobre 2005 Statut Membre Dernière intervention 1 février 2016 - 18 févr. 2010 à 16:40
chris79 Messages postés 97 Date d'inscription lundi 3 octobre 2005 Statut Membre Dernière intervention 1 février 2016 - 18 févr. 2010 à 16:40
A voir également:
- Find -name shell
- Classic shell windows 11 - Télécharger - Personnalisation
- Find ctime ✓ - Forum Shell
- Shell pause ✓ - Forum Shell
- Ava find - Télécharger - Divers Utilitaires
- Classic shell c'est quoi ✓ - Forum Windows 10
6 réponses
bonsoir,
je ne suis pas un pro du bash loin de la ...
mais il me semble que pour le cas 1 tu peux faire
cp $(ls |sed -e '/nomdurepignoré/*/d')
pour le 2
cp $(ls |sed -e '/nomdufichier*/d')
pour le 3 hmmm
en esperant que ca t'aide ...
je ne suis pas un pro du bash loin de la ...
mais il me semble que pour le cas 1 tu peux faire
cp $(ls |sed -e '/nomdurepignoré/*/d')
pour le 2
cp $(ls |sed -e '/nomdufichier*/d')
pour le 3 hmmm
en esperant que ca t'aide ...
/usr/share/doc/bash (exemples)
/usr/share/doc-base/bash (tutos)
/usr/share/doc-base/bash (tutos)
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
25
10 févr. 2010 à 10:13
10 févr. 2010 à 10:13
Merci pour les liens, je vais jeter un oeil :-)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 févr. 2010 à 10:06
10 févr. 2010 à 10:06
Salut,
Sur une seule commande ce n'est pas possible, et à la limite, ta solution est sûrement ce qui irait le mieux.
Il faut surtout prendre en compte si ce que tu veux faire est une tâche isolée (à ne faire qu'une fois) ou une tâche répétitive.
Si ce n'est qu'une seule fois, ta méthode reste la plus optimisée.
Si répétition, voir alors avec des commandes comme "rsync" ou "tar" qui incluent des paramètres permettant d'exclure des répertoires et des fichiers lors du traitement.
La commande "find" pour ce genre de chose reste assez lourde, surtout la syntaxe de l'option "-prune" pour omettre des répertoires et/ou fichiers..
Sur une seule commande ce n'est pas possible, et à la limite, ta solution est sûrement ce qui irait le mieux.
Il faut surtout prendre en compte si ce que tu veux faire est une tâche isolée (à ne faire qu'une fois) ou une tâche répétitive.
Si ce n'est qu'une seule fois, ta méthode reste la plus optimisée.
Si répétition, voir alors avec des commandes comme "rsync" ou "tar" qui incluent des paramètres permettant d'exclure des répertoires et des fichiers lors du traitement.
La commande "find" pour ce genre de chose reste assez lourde, surtout la syntaxe de l'option "-prune" pour omettre des répertoires et/ou fichiers..
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
25
10 févr. 2010 à 10:18
10 févr. 2010 à 10:18
C'est effectivement une tache répétitive destinée à être exécutée dans un script.
Pis surtout, mon répertoire source fait environ 400 Mo alors que le répertoire dest, une fois nettoyé, fait environ 20 Mo !! Alors copier 380 Mo pour les effacer la ligne suivante...je ne trouve pas cela terrible :-).
Par contre une solution à base de "tar" me parait intéressante....je vais voir cela plus en détail.
Dans tous les cas, merci !
Pis surtout, mon répertoire source fait environ 400 Mo alors que le répertoire dest, une fois nettoyé, fait environ 20 Mo !! Alors copier 380 Mo pour les effacer la ligne suivante...je ne trouve pas cela terrible :-).
Par contre une solution à base de "tar" me parait intéressante....je vais voir cela plus en détail.
Dans tous les cas, merci !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 févr. 2010 à 10:25
10 févr. 2010 à 10:25
Dans ce cas là, rsync me parait encore plus approprié alors...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pourquoi ma proposition est elle "mauvaise" ?
(je cherche a apprendre un ...)
(je cherche a apprendre un ...)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 févr. 2010 à 10:49
10 févr. 2010 à 10:49
Elle n'est pas mauvaise, c'est juste que ce qu'il veut faire est assez biscornu, et si on commence à se lancer dans des commandes comme celles citées plus haut, il n'est pas arrivé ;-\
A partir du moment où il existe des commandes ou des programmes implémentant nativement les besoins recherchés, pas la peine de se casser la tête à chercher (ou juste pour se faire plaisir alors) des solutions quelque peu tordues, non ?
A partir du moment où il existe des commandes ou des programmes implémentant nativement les besoins recherchés, pas la peine de se casser la tête à chercher (ou juste pour se faire plaisir alors) des solutions quelque peu tordues, non ?
chris79
Messages postés
97
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
1 février 2016
25
18 févr. 2010 à 16:40
18 févr. 2010 à 16:40
Salut,
bon je viens poster la solution que j'ai retenue, c'est celle à base de la commande rsync.
Cela donne quelque chose comme :
rsync -rltgoDv --exclude=include --exclude=<fichier quelconque> --exclude=coco/bidule/* source dest
Cela respecte précisément ce que je voulais faire.
Merci à vous !
++
bon je viens poster la solution que j'ai retenue, c'est celle à base de la commande rsync.
Cela donne quelque chose comme :
rsync -rltgoDv --exclude=include --exclude=<fichier quelconque> --exclude=coco/bidule/* source dest
Cela respecte précisément ce que je voulais faire.
Merci à vous !
++
10 févr. 2010 à 10:12
Je te tiens au courant.
Merci.