-a est une option qui signifie qu'on veut traiter les fichiers binaires « comme si » c'était des fichiers textes : normalement la commande ne marche que sur du texte, mais si vous voulez chercher une chaîne de caractère dans les octets qui composent une image JPG, libre à vous ;
-C 2000, « C » pour contexte : si la chaîne de caractères est trouvée, je veux que grep me renvoie les 2000 lignes qui « entourent » la ligne où la chaîne apparaît. Comme mon script faisait dans les 1000 lignes, j'ai tapé large. Vous pouvez aussi jouer avec -B (pour before) et -A (pour after) pour avoir un contexte non-symmétrique ;
"global_objects\.add" : une chaîne de caractères dont je me rappelais qu'elle était présente dans le script en question. Si vous avez perdu un texte, essayez de vous rappeler d'un titre ou d'une séquence de mots spécifique. Pour ma part, je me souvenais qu'à un moment, je remplissais un set nommé global_objects ;
/dev/sda2 : le truc magique, c'est que grep peut tourner sur une partition complète ! Ici, la partition qui correspond à un mon dossier perso ;
tee recovered_data : ça, c'est optionnel, mais ça permet, lorsque la chaîne est trouvée, à la fois de l'afficher et de la stocker dans le fichier recovered_data.
Pour faire simple : on demande à grep de scanner l'intégralité du disque dur (ou de la partition en question) comme si c'était un gros texte, et si jamais il trouve la chaîne global_objects.add, de nous afficher les 2000 lignes de texte qui l'encadrent.