Mais cette fois, ça ne fonctionne pas:
Pour une raison inconnue grep considère que le flux reçu en input est un fichier binaire.
Bien sûr le problème peut être contourné avec la commande:
[root@rigel ~]# history | grep --binary-file=text restart
Voyons ça en image:
Pourtant auparavant, on n'avait pas besoin de cette option. De plus, cette fois nous sommes root, mais pour un utilisateur ordinaire rien n'est changé: ça fonctionne comme avant!
Quel est ce mystère?
Utilisons file pour déterminer le type du fichier .bash_history:
[root@rigel ~]# file .bash_history
.bash_history: ISO-8859 text
La clef du mystère est là, car pour toto (utilisateur lambda):
[toto@rigel ~]$ file .bash_history
.bash_history: UTF-8 Unicode text
Grâce à iconv, nous allons convertir le fichier .bash_history:
[root@rigel ~]# iconv -f ISO-8859-1 -t UTF-8 < .bash_history > history
et vérifier que le résultat obtenu est celui que nous attendons:
Il reste à copier history dans .bash_history:
[root@rigel ~]# cp history .bash_history
cp : voulez-vous écraser « .bash_history » ? o
[root@rigel ~]#
Il faut se déconnecter pour que le changement soit pris en compte: exit puis de nouveau su (sudo -s pour Ubuntu)
Et voilà: