Did I remember correctly what command sequence I last used that pattern with? Will my data be gone? Will I send a vulgar email to my boss? Who knows, let’s find out!
I don’t understand people who have the confidence to just blindly run the last matching command like that. Like, are you 100% sure that the last time you ran find was that one, not the one that piped to xargs rm?
At least with zsh you can tab to complete the !find and verify it’s what you want before running it. And, AFAIK by default, the shell option hist_verify is set, so if you do just type !find and hit enter, it doesn’t run the command, it loads the command into the editing buffer so you can look it over first. Maybe I just have a weak memory, but I really appreciate the footgun prevention. At worst I have to hit enter twice. At best, I save myself a lot of grief.
The one people see me doing that gets a “huh?” Is:
~$ !find find -type f -name '*blah*' -print0 | xargs -0 gzip ~$
“Wait! What did you do?” “Oh. Do you not know about bang?”
I love the excitement of using !?
Did I remember correctly what command sequence I last used that pattern with? Will my data be gone? Will I send a vulgar email to my boss? Who knows, let’s find out!
That’s why you can add “:p” to the end just to print it.
I don’t understand people who have the confidence to just blindly run the last matching command like that. Like, are you 100% sure that the last time you ran find was that one, not the one that piped to
xargs rm
?At least with zsh you can tab to complete the
!find
and verify it’s what you want before running it. And, AFAIK by default, the shell optionhist_verify
is set, so if you do just type!find
and hit enter, it doesn’t run the command, it loads the command into the editing buffer so you can look it over first. Maybe I just have a weak memory, but I really appreciate the footgun prevention. At worst I have to hit enter twice. At best, I save myself a lot of grief.Normally the use case is
It’s in my recent memory, but maybe there’s been 10 or so commands of me fixing stuff in-between.