This function takes the last command and puts sudo in front of it. Actually used it in a zoom call at work without thinking and it took a second to realize why everyone was laughing. Not my invention–came across it years ago on stackoverflow or someplace and thought it was funny/useful.
kmirl@tux:~$ ls /root
ls: cannot open directory '/root': Permission denied
kmirl@tux:~$ fuck
[sudo] password forkmirl:
bin debs docs Mail
According to this super user question, someone said that !! won’t work in a function, so you must use the fc -ln -1 command in a subshell instead. Note the response that says eval shouldn’t be used (not sure why)
fuck() { sudo $(fc -ln -1) }
This function takes the last command and puts sudo in front of it. Actually used it in a zoom call at work without thinking and it took a second to realize why everyone was laughing. Not my invention–came across it years ago on stackoverflow or someplace and thought it was funny/useful.
kmirl@tux:~$ ls /root ls: cannot open directory '/root': Permission denied kmirl@tux:~$ fuck [sudo] password for kmirl: bin debs docs Mail
Isn’t this the same effect as just running ‘sudo !!’ ?
According to this super user question, someone said that
!!
won’t work in a function, so you must use thefc -ln -1
command in a subshell instead. Note the response that sayseval
shouldn’t be used (not sure why)Yeah but instead of a function you just make it an alias.
alias fuck='sudo $(fc -ln -1)'
Considering the function name, here’s an obligatory thefuck plug