How to copy, move and delete files in your shell the safe way
If you copy, move or remove files in the shell using cp
, mv
and rm
you don’t get a confirmation for your action. This can be a awfully bad thing if you happen to make a mistake like slipping on a key and accidentally deleting the wrong file. No ones want that.
There’s a pretty simple way to prevent an accident like that, and that’s using the flag -i, --interactive
with those commands. It will then ask for your confirmation every time you’re about to overwrite or delete files:
Move:
$ mv -i dog.txt cat.txt
mv: overwrite 'cat.txt'?
Copy:
$ cp -i cat.txt dog.txt
cp: overwrite 'dog.txt'?
Delete:
$ rm -i *
zsh: sure you want to delete all 2 files in /home/johan/test [yn]?
This flag has actually saved me a few times. I highly recommend adding aliases for them so you never forget to use the flags:
alias cp='cp -i'
alias mv='mv -i'
alias rm='mv -i'
By default, rm
will ask for confirmation for every single file, if you batch delete files and only want to confirm once, you can change the flag to a capital “i” like this: -I
. It will then only ask you when you remove three files or more and when you’re removing files and folders recursively.