OVH Cloud OVH Cloud

desactiver l'historique de bash temporairement

4 réponses
Avatar
Adrien
Bonjour à tous,

De temps à autre je dois supprimer un répertoire complètement et
récursivement.
Donc je tape rm -rf *

Quand je tape une commande aussi dangereuse, j'aimerais bien qu'elle ne soit
pas sauvegardée dans l'historique, l'histoire de ne pas la rappeler en
faisant une fausse manip dans un autre répertoire...

Est-ce qu'il y a un moyen de désactiver l'historique de bash
temporairement ?

Question subsidiaire, quels sont vos "trucs" pour vous protéger des
suppressions accidentelles ?

Merci.
Adrien

4 réponses

Avatar
Matthieu Moy
Adrien writes:

Bonjour à tous,

De temps à autre je dois supprimer un répertoire complètement et
récursivement.
Donc je tape rm -rf *


Moi, je tappe

$ cd ..
$ rm -fr repertoire/*

dans ces cas là. Et si j'étais un peu plus prudent, avec un rm qui
l'autorise (GNU en particulier) :

$ rm repertoire/* -fr

(en ne mettant le -fr que quand on est sur de ne pas avoir fait de
faute de frappe)


Et accessoirement, zsh me demande confirmation avant de faire une
expansion de l'étoile quand la commande est "rm" ;-).

--
Matthieu

Avatar
Samuel Colin
Dixit Adrien :
Bonjour à tous,

Bonjour,


Est-ce qu'il y a un moyen de désactiver l'historique de bash
temporairement ?

Là comme ça, je dirais faire un alias sur rm de telle manière qu'il

influe sur l'historique.
Il doit y avoir moyen de faire ça avec "history -d" avec un grep sur
l'historique pour voir les entrées qui ressemblent à "rm -rf *" et les
effacer.

Question subsidiaire, quels sont vos "trucs" pour vous protéger des
suppressions accidentelles ?

Des sauvegardes. Beaucoup. Partout.


Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:44ec708d$0$26013$,
*Adrien* tapota sur f.c.o.l.configuration :

Bonjour,

De temps à autre je dois supprimer un répertoire complètement et
récursivement.
Donc je tape rm -rf *

Quand je tape une commande aussi dangereuse, j'aimerais bien qu'elle ne
soit pas sauvegardée dans l'historique, l'histoire de ne pas la rappeler
en faisant une fausse manip dans un autre répertoire...

Est-ce qu'il y a un moyen de désactiver l'historique de bash
temporairement ?


Je vois au moins 3 possibilités pour éviter de conserver une commande dans
l'historique.

La première, c'est de définir la variable d'environnement HISTIGNORE avec la
liste des commandes à ne pas sauvegarder dans l'historique :

$ HISTIGNORE='rm -rf *'

=> toutes les commandes commençant par 'rm -rf ' sont ignorées de
l'historique

La deuxième, c'est de définir la variable d'environnement HISTCONTROL avec
l'option ignorespace ou ignoreboth (= ignorespace+ignoredup).
Ainsi, à chaque fois que vous désirez taper une commande sans que celle-ci
soit sauvegardée dans l'historique, vous la précédez d'un espace. Cela
s'avère indispensable quand de rares commandes nécessitent de saisir un mot
de passe en clair en ligne de commande, ou bien pour éviter de sauvegarder
des commandes dangereuses comme c'est le cas ici.

Enfin, la troisième serait de créer une fonction 'rm' qui, en plus de lancer
la commande rm, supprimerait l'historique de la commande avec la commande
interne 'history' de bash.

--
Sébastien Monbrun aka TiChou

Avatar
Adrien

Est-ce qu'il y a un moyen de désactiver l'historique de bash
temporairement ?



Merci beaucoup pour vos réponse.
Adrien