Bash – Avoid a trailing slash in bash when completing a directory name (like zsh)

autocompletebash

I'm on a Mac and the cp and mv commands are killing me due to them copying the contents of a directory if a trailing slash is present. It has bitten me more than once when I use tab completion to specify the directory I want to copy.

I have noticed zsh has a neat feature that removes the trailing slash if it's not needed after a space or enter key is pressed. Is there any way to have bash mimic this behavior?

Best Answer

Put

set mark-directories off

in your ~/.inputrc, and ensure you have export INPUTRC=~/.inputrc in ~/.bashrc.

If you want to set this immediately then you can use bash's bind command:

bind 'set mark-directories off'

See also How to avoid cp -r ~/some/folder/ . copying all files to the current folder's top level?