Chaque fois que je rm
multiplie les éléments à la fois avec l'éclatement de la coquille et qu'il y a même la moindre possibilité que le motif se développe plus que je ne le pense, j'essaie toujours de m'en souvenir -i
, mais (bien sûr) je pourrais oublier et emporter accidentellement quelque chose d'utile. Certaines personnes essaient de résoudre ce problème avec un alias, comme alias rm='rm -i'
mais je déteste l'idée de rendre rm toujours interactif, car alors j'aurai l'habitude de l'utiliser -f
tout le temps, ce qui va évidemment à l'encontre de l'objectif.
Ce que j'aimerais faire, c'est de rm
ne l'utiliser que -i
lorsque j'utilise la globalisation, et -f
bien sûr de passer outre -i
, afin que je puisse encore emporter des répertoires entiers avec l'habituel rm -rf junk
.
Par conséquent, ce rm *blah*
serait vraiment, rm -i *blah*
mais rm blah
fonctionnerait exactement comme tapé.
Au cas où il y aurait une différence dans la façon dont cela pourrait être accompli dans différents shells, je choisirai une réponse qui fournit des méthodes pour bash et zsh plutôt que des réponses qui ne couvrent que l'un ou l'autre.
Remarque : je ne suis pas vraiment convaincu que ce soit nécessairement une bonne idée; Je demande juste si c'est possible. Si vous pensez que c'est une idée stupide, je serais très heureux d'entendre le raisonnement derrière votre opinion, mais veuillez ne pas poster de tels commentaires dans le champ de réponse . Les vraies réponses me disent comment faire cela ou expliquent cela / pourquoi cela n'est pas possible (ou peut-être offrent une méthode alternative pour obtenir un résultat similaire). Mais si vous voulez me dire pourquoi c'est stupide, veuillez poster un commentaire. Je voterai pour des commentaires bien motivés même si je ne suis pas d'accord avec la conclusion.
noglob
par exemple, d'aliaser rm en noglob my-rm
, puis d'avoir my-rm comme un script qui vérifie un glob, le développe et passe -i ou non. Pas sûr, je ne sais pas zsh.
myrm
et laisser ce script faire les choses merveilleuses que vous aimez.
rm -I
c'est comme-i
ça qui ne se déclenche que lorsque plus de trois fichiers ou-r
sont passés. Dansbash
, utilisez leCtrl-x *
raccourci clavier pour développer le glob et inspectez-le vous-même.