Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/04/2014, à 12:20

sylvanux

RESOLU Qu'est ce qui s'est passé??

Bonjour à tous

Voila pour m'améliorer un peu sous linux j'ai acheté un livre.
Dans ce livre j'avais un exercice ou je devais regroupé en une ligne de commande tous mes fichiers .jpg dans le dossier Images.

J'ai tapé ça :     sudo find ~ -name "*.jpg" -exec mv {} /home/Images \

et résultat tout mes fichiers .jpg ont disparu.

Je voudrais bien que quelqu'un me dise ce qui a bien pu arriver à mes photos. (des photos dont j'avais évidemment fait une copie. oufff)

Je crois que mon erreur viens du fait que j'aurai du taper plutôt  /home/sylvain/Images mais qu'est ce qui s'est passé???

Merci d'avance pour vos réponses!!

Dernière modification par sylvanux (Le 23/04/2014, à 15:20)

Hors ligne

#2 Le 22/04/2014, à 13:11

serged

Re : RESOLU Qu'est ce qui s'est passé??

- Déjà pourquoi le sudo ? Normalement, tes images t'appartiennent et ne nécessitent pas le sudo...
- Enfin, une grande règle avec find (et autres commandes un peu absconse) : tester d’abord la commande avec echo. Tu aurais du taper d'abord :

sudo find ~ -name "*.jpg" -exec echo mv {} /home/Images

Pour voir ce qu'il se passe !


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#3 Le 22/04/2014, à 13:54

sylvanux

Re : RESOLU Qu'est ce qui s'est passé??

Donc je viens te taper ta commande et voici le résultat :

sudo find ~ -name "*.jpg" -exec echo mv {} /home/Images
[sudo] password for sylvain:
find: paramètre manquant pour « -exec »

Pourtant la commande a bien été exécutée sans message d'erreur comme avec "echo".

Hors ligne

#4 Le 22/04/2014, à 14:29

Watael

Re : RESOLU Qu'est ce qui s'est passé??

salut,

- il est peu probable qu'un dossier /home/Images existe, à moins que tu l'aies créé, mais ça n'a pas beaucoup de sens.
- il manque le point-virgule nécessaire à -exec :

find ~ -name "*.jpg" -exec echo mv {} $ailleurs \;

encore mieux:

find ~ -name "*.jpg" -exec echo mv -t $ailleurs {} \+

où $ailleurs est un répertoire prédéfini et créé avant de lancer find wink

NB: si $ailleurs est dans ton répertoire personnel (~), il faudra ajouter une exclusion sur ce répertoire dans la commande find.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 23/04/2014, à 09:23

sylvanux

Re : RESOLU Qu'est ce qui s'est passé??

Donc en fait la commande que j'ai tapé en premier m'a déplacé toutes mes photos dans un dossier  Image qui n'existe pas et c'est pour cette raison que j'ai tout perdu???
En fait le but de ce post c'est que je voudrais surtout comprendre ce qu'a fait cette commande, quelle action cela a provoqué??

Hors ligne

#6 Le 23/04/2014, à 09:49

tiramiseb

Re : RESOLU Qu'est ce qui s'est passé??

serged a écrit :

- Déjà pourquoi le sudo ? Normalement, tes images t'appartiennent et ne nécessitent pas le sudo...

Entièrement d'accord.
sudo est à réserver aux tâches d'administration du système.

sylvanux a écrit :

Donc en fait la commande que j'ai tapé en premier m'a déplacé toutes mes photos dans un dossier  Image qui n'existe pas

Pas exactement.

Avec cette commande, tu as exécuté successivement la commande « mv <nom de fichier> /home/Images », sur tous les fichiers trouvés l'un après l'autre.
Chaque fichier a donc été renommé /home/Images, puis a été écrasé par le suivant, etc.
Actuellement, /home/Images est donc le tout dernier fichier qui a été traité.

Avec la seconde syntaxe proposée par Watael, terminant par "\+", ça exécute une seule commande "mv" en donnant les noms de fichiers à cette unique commande plutôt que de l'exécuter une fois par fichier (syntaxe avec "\;").

Hors ligne

#7 Le 23/04/2014, à 15:20

sylvanux

Re : RESOLU Qu'est ce qui s'est passé??

ok ok merci pour ces informations, comme quoi les erreurs peuvent coûter cher en console!!! Et je vois que j'ai encore du travail pour espérer maîtriser un jour le sujet.

Hors ligne

#8 Le 05/06/2014, à 11:40

sylvanux

Re : RESOLU Qu'est ce qui s'est passé??

NB: si $ailleurs est dans ton répertoire personnel (~), il faudra ajouter une exclusion sur ce répertoire dans la commande find.


Quelqu'un saurait-il m'expliquer cette phrase par un exemple!!!

D'avance merci

Hors ligne

#9 Le 05/06/2014, à 11:48

tiramiseb

Re : RESOLU Qu'est ce qui s'est passé??

sylvanux a écrit :

NB: si $ailleurs est dans ton répertoire personnel (~), il faudra ajouter une exclusion sur ce répertoire dans la commande find.

Quelqu'un saurait-il m'expliquer cette phrase par un exemple!!!


Si ta cible est sous ton répertoire personnel, par exemple dans "/home/sylvanux/destination/", alors lorsque tu vas lancer ton "find" sur ~ (donc sur /home/sylvanux/) et son contenu, il risque de traiter également le contenu de la cible, qui est déjà traitée...

Hors ligne