[Résolu]tri de données photorec

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :
J'ai commencer à tenter l'extraction ciblée des fichiers qui m'intéressent par catégorie, en l'occurence de .jpg avec la commande (en root ou user)
mv /home/ouam/recup_dir.*/*.jpg /home/ouam/recupnovembre2019Photorec/jpg/
bash: /usr/bin/mv: Liste d'arguments trop longue
ensuite
> find /home/ouam/recup_dir.*/* -type f -name .jpg -exec cp {} /home/ouam/recupnovembre2019Photorec/jpg/. \;
bash: /home/ouam/recup_dir.100/f93181624.ini: Permission non accordée
ensuite
sudo chmod -R 755 /home/ouam/recup_dir.100
re
> find /home/ouam/recup_dir.*/* -type f -name .jpg -exec cp {} /home/ouam/recupnovembre2019Photorec/jpg/. \;
bash: /home/ouam/recup_dir.100/f93181624.ini: Liste d'arguments trop longue
jje ne connais pas la limite du nombre d'arguments si cela constitue une piste possible, le spécifier dans la commande,
je ne vois pas trop comment m'en sortir,
Édité par dao Le 18/12/2019 à 11h49

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
par exemple :
Code BASH :
du -aLb | sed -e 's/^[[:digit:]]*[[:space:]]*//' | grep -e '.jpg$' >~/liste.jpg.txt
ensuite, tu peux faire :
Code BASH :
for i in ~/liste.jpg.txt ; do mv ${i} ~/destination/ ; done
Ou encore, grosse combinaison :
Code BASH :
for i in $(du -alb | sed -e 's/[[:digit:]]*[[:space:]]*//' | grep -e '.jpg$') ; do mv ${i} ~/destination/ ; done
Explication :
du (Disk Usage) affiche tous les fichiers ainsi que les fichiers des sous dossiers (-a), sans prendre en compte les liens symboliques (-L) et en affichant la taille des fichiers en octet plutot que l'affichage "humain" (36Mo au lieu de 35234233 octets).
Cette liste qu'il nous donne, on supprime l'indésirable des lignes (la taille, l'espace entre la taille et le nom du fichier) avec sed.
sed prends des scripts en argument, et procèdera ligne par ligne. 's' est une commande pour remplacer, 'commande/motif à remplacer/remplaçant/arguments' → 's/motif/vide/pas d'arguments' → 's/motif//'. Notre motif, c'est en début de ligne (^) qui commence avec un nombre indéfini (*) de chiffre (classe de caractère [:digit
![:] :]](/images/smileys/8.gif)
![:] :]](/images/smileys/8.gif)
![:] :]](/images/smileys/8.gif)
![:] :]](/images/smileys/8.gif)
Puis, on n'affiche que ce qui se termine ($) par .jpg.
Ainsi, on a cette liste qui est utilisé par notre boucle for, la structure for est "for variable in liste; do commande; commande; commande; [...] done"
'i' prendra la valeur de chacune des lignes de la liste.
Puis mv fait le travail...
C'est clair ?
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Code BASH :
[jybz@localhost Android_Internals]$ for i in $(du -alb | sed -e 's/[[:digit:]]*[[:space:]]*//' | grep -e '.pdf$') ; do echo mv ${i} ~/destination/ ; done mv ./pass4-nup.pdf /home/jybz/destination/ mv ./pass4-n.pdf /home/jybz/destination/ mv ./pass5_P1.pdf /home/jybz/destination/ mv ./out.pdf /home/jybz/destination/ mv ./pass5_test.pdf /home/jybz/destination/ mv ./pass4.pdf /home/jybz/destination/ mv ./pass1.pdf /home/jybz/destination/ mv ./pass5.pdf /home/jybz/destination/ mv ./pass3.pdf /home/jybz/destination/ mv ./pass2.pdf /home/jybz/destination/ mv ./pass5_P2.pdf /home/jybz/destination/
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :
du -aLb | sed -e 's/^[[:digit
![:] :]](/images/smileys/8.gif)
![:] :]](/images/smileys/8.gif)
comment je l'applique, sachant que ma demande de déplacements de fichiers , par exemple des .jpg , concerne 784 dossiers recup_dir
de
/home/ouam/recup_dir.781 à /home/ouam/recup_dir.784
vers
/home/ouam/recupnovembre2019Photorec/jpg/

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Tous tes dossiers recup_dir sont dans /home/ouam/ directement ?
hum...
Que dit la commande :
Code TEXT :
mv ~/recup_dir.1* ~/global/
Si elle ne crie pas, tu peux faire les suivante pour déplacer tous les dossiers recup_dir.truc dans un seul dossier.
Code TEXT :
mv ~/recup_dir.2* ~/global/ mv ~/recup_dir.3* ~/global/ mv ~/recup_dir.4* ~/global/ mv ~/recup_dir.5* ~/global/ mv ~/recup_dir.6* ~/global/ mv ~/recup_dir.7* ~/global/ mv ~/recup_dir.8* ~/global/ mv ~/recup_dir.9* ~/global/
Effectivement, c'est important de le faire depuis un dossier avec "rien d'autre", sinon ça déplacera TOUT même ce qu'on ne souhaite pas déplacer.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :
à chaque fois j'indique le dossier à photorec pour la destination, en l'occurence
/home/ouam/recupinitialephotorec
que j'avais créé pour être un peu ordonné, mais photorec n'en tient pas commpte
Voici le retour de commande
# mv ~/recup_dir.1* ~/global/
mv: impossible d'évaluer '/root/recup_dir.1*': Aucun fichier ou dossier de ce type
Si je connaissais la limite de commande de mv, tenterais le transfert par lot de dossiers, mais je ne sais pas comment argumenter la commande pour que soit traité par exemple les dossiers 1 à 50 par exemple, (car j'en ai beaucoup)
dans une commande comme celle ci, si elle est correcte
mv /home/ouam/recup_dir.*/*.jpg /home/ouam/recupnovembre2019Photorec/jpg/

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Code BASH :
for i in $(du -alb | sed -e 's/[[:digit:]]*[[:space:]]*//' | grep -e 'recup_dir') ; do echo mv ${i} ~/recupinitialephotorec/ ; done
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :
for i in $(du -alb | sed -e 's/[[:digit
![:] :]](/images/smileys/8.gif)
![:] :]](/images/smileys/8.gif)
rien n'a bougé et je n'arrive pas avec shift + page up à remonter jusqu'à la commande pour voir si tous les dossiers recup_dir ont été listés

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :
mv /home/ouam/recup_dir.*/*.jpg /home/ouam/recupnovembre2019Photorec/jpg/
pour traiter un lot de dossier par exemple de recup-dir.1 à recup_dir.50

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Ah il manque un -d 1 pour la commande du je pense.
Mais je n'ose pas continuer, c'est dangereux de travailler comme ça dans le dossier de l'utilisateur.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :
mv /home/ouam/recup_dir.*/*.jpg /home/ouam/recupnovembre2019Photorec/jpg/
a un nombre de dossiers limité pour contourner cette limitation de Liste d'arguments trop longue

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Fais cette commande, elle est non destructive, et donne nous le contenu du fichier liste.txt du dossier utilisateur :
Code TEXT :
du -alb | sed -e 's/[[:digit:]]*[[:space:]]*//' | grep -e 'recup_dir' >~/liste.txt
Édité par Jybz Le 30/11/2019 à 10h18
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Code TEXT :
sed -e '/jpg$/!d' ~/liste.txt >~/liste.jpg.txt
Édité par Jybz Le 30/11/2019 à 18h31
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

dao Membre non connecté
-
- Voir le profil du membre dao
- Inscrit le : 14/10/2013
- Groupes :
sed: -e expression n°1, caractère 9: commande « s » inachevée
oui tout fait il n'y a que des fichiers recup_dir, la sortie de la commande dans liste.txt est trop longue pour que je la porte ici 402593 lignes relatives au contyenu des 784 fichiers recup_dir
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie