Aliases to make the mv and cp commands more user friendly
- Published at
- Updated at
- Reading time
Tom explains the
-iv options of
cp, which led me to add these two aliases:
alias mv="mv -iv" alias cp="cp -iv"
The one thing that confused me when I started using the terminal and shell environments was that most commands, by default, don't give much information on what's happening. And there is a reason behind this; if you're automating things and write shell scripts, you don't want to see hundreds of logs in your terminal. I don't write complex scripts, though. I use the terminal to start commands, create files, and move them around. That's it and is why I appreciated more information in my terminal.
Additionally, these commands take your instructions very seriously. 🙈 If you're moving, copy or rename a file to a target that already exists, it overwrites it. No questions asked. This behavior can lead to unintended file loss.
I added the above aliases to make the
cp command more user friendly, and I love it!
To move files, you usually use the
mv command. I learned that it supports two flags that make it easier to use. Applying the
-iv options to
mv makes the command more verbose. It will also tell you and double-check if you want to overwrite another file.
# log more information to the terminal mv one.txt two.txt three.txt -> one.txt # ask before overwriting a file mv two.txt three.txt overwrite three.txt? (y/n [n]) n not overwritten
The same options apply to the
cp command to copy files.
# log more information to the terminal cp one.txt two.txt one.txt -> two.txt # ask before overwriting a file cp two.txt three.txt overwrite three.txt? (y/n [n]) n not overwritten
I know that it can be dangerous to get used to these more verbose and safer commands. If you're in a remote shell, you might overwrite files because you are used to the safety net. That's your decision to make, and if you want to, you can choose different aliases.
In my case, I rarely deal with remote servers, so that's okay for me. 🙈