#1 Le 20/05/2008, à 11:47
- fanfantasy7
[RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
donc la il trouve bien mes fichiers ~
bertrand@bertrand-laptop:~$ find /$HOME/ -name *~ -ok mv {} ~/.local/share/Trash/files/ \;< mv ... //home/bertrand/.gnome2/nautilus-scripts/test2~ > ? no
< mv ... //home/bertrand/.gnome2/nautilus-scripts/test~ > ?
< mv ... //home/bertrand/.gnome2/nautilus-scripts/restaurer~ > ?
find: //home/bertrand/.config/menus/applications-merged: Permission non accordée
< mv ... //home/bertrand/.local/share/Trash/files/a faire jas.txt~ > ?
< mv ... //home/bertrand/.local/share/Trash/files/poubelle.sh~ > ?
< mv ... //home/bertrand/.local/share/Trash/files/test.html~ > ?
< mv ... //home/bertrand/.local/share/Trash/files/apache hotes virtuels.txt~ > ?
< mv ... //home/bertrand/.local/share/Trash/files/clean_8.04.sh~ > ?
< mv ... //home/bertrand/.local/share/Trash/files/temp.html~ > ?
< mv ... //home/bertrand/.local/share/Trash/files/restore_trash.sh~ > ?
< mv ... //home/bertrand/.local/share/Trash/files/clean_7.10_et_ant.sh~ > ?
< mv ... //home/bertrand/linux/script/bin/poubelle~ > ?
find: //home/bertrand/.dbus: Permission non accordée
mais je ne veut pas voir les fichier qui sont dans ma corbeille -> /$HOME/.local/share/Trash
je rajoute donc le -path /$HOME/.local/share/Trash
bertrand@bertrand-laptop:~$ find /$HOME/ -name *~ -path /$HOME/.local/share/Trash -ok mv {} ~/.local/share/Trash/files/ \;
find: //home/bertrand/.config/menus/applications-merged: Permission non accordée
find: //home/bertrand/.dbus: Permission non accordée
mais visiblement il m'exclue plus que ce que je lui dit dans le -path
merci de m'aider
fanfantasy7
Dernière modification par fanfantasy7 (Le 21/05/2008, à 09:10)
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#2 Le 20/05/2008, à 12:05
- Totor
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
1ère modif, remplacer
find /$HOME/ -name *~ ...
par
find /$HOME/ -name "*~"...
sinon, c'est le shell qui interprète *~ et non la commande find.
Essayes ceci :
find ~ -name "*~" -a ! -path "/$HOME/.local/share/Trash*" -ok mv {} ~/.local/share/Trash/files/ \; ...
Dernière modification par Totor (Le 20/05/2008, à 12:08)
-- Lucid Lynx --
Hors ligne
#3 Le 20/05/2008, à 12:19
- fanfantasy7
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
bertrand@bertrand-laptop:~$ find ~ -name "*~" -a ! -path "/$HOME/.local/share/Trash*" -ok mv {} ~/.local/share/Trash/files/ \
>
ta ligne de code me retourne un > et attend je sai pas quoi mais ça avance pas
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#4 Le 20/05/2008, à 12:41
- Totor
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
ben je sais pas
n'as-tu pas oublié un ; à la fin de la ligne, comme dans ton post ? ?
par ailleurs, j'ai vu une coquille :
remplace /$HOME/ par $HOME/ ou par ~/ sinon, le filtre ne fonctionnera pas.
Dernière modification par Totor (Le 20/05/2008, à 12:52)
-- Lucid Lynx --
Hors ligne
#5 Le 20/05/2008, à 19:09
- trucutu
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
As tu essayé :
commande_find | grep -v path_poubelle
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#6 Le 20/05/2008, à 19:25
- uboops
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
Il existe déja un script de maintenance tout fait ici :
http://forum.ubuntu-fr.org/viewtopic.php?id=117039&p=1
http://doc.ubuntu-fr.org/maintenir_systeme
#7 Le 20/05/2008, à 19:36
- Totor
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
As tu essayé :
commande_find | grep -v path_poubelle
c'est aussi possible mais dans ce cas, il ne doit pas effectuer le mv via la commande find.
Cela donnerait plutôt quelque chose comme ça :
commande_find | grep -v path_poubelle|xargs mv -t path_poubelle
ou encore comme suit :
commande_find | grep -v path_poubelle|awk '{print "mv "$1" path_poubelle"}'|bash
et il y a probablement d'autres possibilités
Note : je suis certain qu'il a oublié le ;
Dernière modification par Totor (Le 20/05/2008, à 19:38)
-- Lucid Lynx --
Hors ligne
#8 Le 20/05/2008, à 19:47
- elfoiros
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
Totor: Attention, le separateur par défaut de la commande awk est le caractere d'espacement. Si il possede des espaces dans le nom du fichier àa risque de foutre le bordel. Il faut utiliser l'option -F de awk
find ~ -name "*~" 2> /dev/null | grep -v $HOME/.local/share/Trash | awk -F EOFEOF '{print "mv \""$1"\" $HOME/.local/share/Trash"}' | bash
Coluche : "Bite" c'est un gros mot, même si c'est une petite
Consultant e-commerce
Étude et realisation
Optimisation, maintenance
Hors ligne
#9 Le 20/05/2008, à 19:50
- Totor
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
j'approuve
-- Lucid Lynx --
Hors ligne
#10 Le 20/05/2008, à 21:40
- fanfantasy7
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
ben je sais pas
n'as-tu pas oublié un ; à la fin de la ligne, comme dans ton post ??
par ailleurs, j'ai vu une coquille :
remplace /$HOME/ par $HOME/ ou par ~/ sinon, le filtre ne fonctionnera pas.
oui j'avai tous faux
bertrand@bertrand-laptop:~$ find ~ -name "*~" -a ! -path "$HOME/.local/share/Trash*" -ok mv {} ~/.local/share/Trash/files/ \;
< mv ... /home/bertrand/.gnome2/nautilus-scripts/test2~ > ?
< mv ... /home/bertrand/.gnome2/nautilus-scripts/test~ > ?
< mv ... /home/bertrand/.gnome2/nautilus-scripts/restaurer~ > ?
find: /home/bertrand/.config/menus/applications-merged: Permission non accordée
< mv ... /home/bertrand/linux/script/bin/poubelle~ > ?
< mv ... /home/bertrand/linux/script/clean_8.04.sh~ > ?
find: /home/bertrand/.dbus: Permission non accordée
bertrand@bertrand-laptop:~$
ca marche
vous allez me dire il en veut toujour plus
mais j'aimerai que les lignes d'avertissement "Permission non accordée" n'apparaisse pas, si c'est possible
sinon c'est quoi "-a !" ? à quoi ca sert ?
merci beaucoup Totor
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#11 Le 21/05/2008, à 06:04
- Totor
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
Pour ne pas afficher l'erreur find: /home/bertrand/.dbus: Permission non accordée, rajoutes 2>/dev/null en fin de ligne (après le ;).
le "-a !" :
-a : opérateur "and"
! : négation
PS : n'oubli pas de mettre [résolu]
Dernière modification par Totor (Le 21/05/2008, à 07:00)
-- Lucid Lynx --
Hors ligne
#12 Le 21/05/2008, à 09:11
- fanfantasy7
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
en grand merci à Totor
ca a marché une fois
mais maintenant ça met un temp fou
bertrand@bertrand-laptop:~$ find ~ -name "*~" -a ! -path "$HOME/.local/share/Trash*" -ok mv {} ~/.local/share/Trash/files/ \; 2>/dev/null
et quand je met pas 2>/dev/null la recherche se fait plus vite
Dernière modification par fanfantasy7 (Le 21/05/2008, à 09:19)
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#13 Le 21/05/2008, à 12:54
- fanfantasy7
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
a mon avis le 2>/dev/null placé aprés le ; n'affiche pas la ligne mais find attend une réponde quand même
j'ai réussi sans confirmation de déplacement
mv `find $HOME/ -name "*~" -a ! -path "$HOME/.local/share/Trash*" 2>/dev/null` $HOME/.local/share/Trash/files/
mais j'aimerai vraiment avoir les choix de déplacement de déplacement
de plus les dossiers avec des espaces, ça bug
et quand je fait
mv "`find $HOME/ -name "*~" -a ! -path "$HOME/.local/share/Trash*" 2>/dev/null`" $HOME/.local/share/Trash/files/
find retourne tous les resultat avec \n entre deux résultat et donc
bertrand@bertrand-laptop:~$ mv "`find $HOME/ -name "*~" -a ! -path "$HOME/.local/share/Trash*" 2>/dev/null`" $HOME/.local/share/Trash/files/
mv: ne peut évaluer `/home/bertrand/au bout du monde a gauche/test2~\n/home/bertrand/au bout du monde a gauche/test~\n/home/bertrand/au bout du monde a gauche/poubelle~\n/home/bertrand/au bout du monde a gauche/clean_ubuntu_8.04.sh~\n/home/bertrand/au bout du monde a gauche/php.php~\n/home/bertrand/au bout du monde a gauche/restaurer~': Aucun fichier ou dossier de ce type
Dernière modification par fanfantasy7 (Le 21/05/2008, à 13:05)
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#14 Le 21/05/2008, à 14:07
- Totor
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
Pour corriger ton problème d'espace dans le nom des fichiers à déplacer, il faut encadrer {} par des ", comme suit :
find ~ -name "*~" -a ! -path "$HOME/.local/share/Trash*" -ok mv "{}" ~/.local/share/Trash/files/ \;
par contre, j'ai le même comportement en ajoutant le 2>/dev/null avec l'option -ok (mais pas avec -exec qui est son équivalent mais sans confirmation)
et il n'y a pas d'option pour le mv permettant la confirmation même si le fichier n'existe pas....
je vais chercher..
par contre, ce que tu veux faire avec ...
mv "`find $HOME/ -name "*~" -a ! -path "$HOME/.local/share/Trash*" 2>/dev/null`" $HOME/.local/share/Trash/files/
est à faire comme cela :
find $HOME/ -name "*~" -a ! -path "$HOME/.local/share/Trash*" 2>/dev/null|xargs mv -t $HOME/.local/share/Trash/files/
mais tu n'as toujours pas de confirmation !
Dernière modification par Totor (Le 21/05/2008, à 14:12)
-- Lucid Lynx --
Hors ligne
#15 Le 21/05/2008, à 14:19
- fanfantasy7
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
ok merci
ouai bizarre que 2>/dev/nul ne marche pas
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#16 Le 21/05/2008, à 16:56
- Totor
Re : [RESOLU]script:chercher fichier~ en excluan $HOME/.local/share/Trash
ce n'est pas que ça ne marche pas...
c'est que les questions ne sont pas visibles et que le prompt attend une réponse pour chacuns des fichiers trouvés.
bon, je n'ai pas trouvé pourquoi.
voici donc un petit script bash qui te permetteras de faire tout ça :
#!/bin/bash
DOS_POUBELLE="~/.local/share/Trash/files/"
COND_SELECTION="*~"
COND_SAUF="~/.local/share/Trash\*"
for fic in `find ~ -name "${COND_SELECTION}" -a ! -path "${COND_SAUF}" 2>/dev/null`
do
# on pose la question
echo -n "Déplacer le fichier ${fic} dans ${DOS_POUBELLE} (O/N) : " && read rep
# on met en majuscule la réponse
rep=`echo ${rep}|tr '[:lower:]' '[:upper:]'`
# Si la réponse est O, alors on déplace, sinon, on ne fait rien
[ "${rep}" = "O" ] && mv -vt "${DOS_POUBELLE}" "${fic}"
done
appelle-le comme tu veux mais n'oublie pas de lui mettre les droits d'exécution, au moins pour ton user (chmod u+x <nom_script>) !
Dernière modification par Totor (Le 21/05/2008, à 16:56)
-- Lucid Lynx --
Hors ligne