Les fichiers récupérés sont stockés dans / myPhotorec.
Le but est de récursivement grep à travers chaque fichier et s'il ne contient PAS la chaîne "44c9ea3abbd24" dans le contenu du fichier (pas le nom du fichier), puis le supprime. La cible était un fichier .py en python et est renommée de manière aléatoire par le nom de récupération du fichier.
Si cela ne peut pas être fait, alors peut-être que le fichier contenant peut être copié dans un répertoire / filtré?
44c9ea3abbd24
ou mot44c9ea3abbd24
?Réponses:
Cela permettrait de rechercher tous les fichiers normaux dans ou sous le
/myPhotorec
répertoire, de vérifier s'ils contiennent la chaîne donnée (dans le contenu du fichier) et, pour chaque fichier ne contenant pas la chaîne, d'afficher les noms de chemin et de les supprimer.Si votre
find
ne supporte pas-delete
, alors remplacez cette partie par-exec rm {} +
.Si vous souhaitez confirmer manuellement chaque suppression, passez
-delete
à-ok rm {} ';'
.Concernant
find ... -exec ...
: Comprendre l'option -exec de `find`la source
find
n'importe quoi n'est généralement pas une bonne idée. Il est évidemment possible d’utiliser le non standard-print0
avecfind
puis de le canaliser dansxargs -0 rm
(où-0
est également non standard), mais cela n’a absolument aucun avantage sur l’utilisation, par exemple, de la même manière-exec rm {} +
que dans ma réponse.Je suppose juste faire:
la source
grep
noms de fichiers sur, pas le contenu des fichiers.