Linux命令mv
mv: mv默认覆盖同名文件,如果有同名文件,在mv时相当于删除原来的文件!
可使用--suffix参数,定义当目标文件名称相同时,在原来的文件名后加后缀。
mv --suffix <suffix> <source_file> <target_file>
例如:

# 源文件路径: 
ls ${source_dir}/your_source_file.txt
# 移动到目标路径:
ls ${target_dir}/your_file.txt  # exist file
# 但在目录 ${target_dir}下有同名文件your_file.txt
# 直接移动,则覆盖原来的文件:your_file.txt
mv ${source_dir}/your_source_file.txt ${target_dir}/your_file.txt
# 若想保留原来的文件可使用--suffix参数,将原来同名文件加后缀
mv --suffix .your_suf ${source_dir}/your_source_file.txt ${target_dir}/your_file.txt
# 这时,原来的your_file.txt则变为: ${target_dir}/your_file.txt.your_suf, 目标文件名不变。

注意:最好不要定义后缀名为’.bak’之类常用的,因为可能已经有.bak之类的备份文件,这样就是把原来的.bak文件覆盖了。

定好后缀名,在~/.bashrc文件中使用aliasmv --suffix <your_suffix>作为默认的mv。加入~/.bashrc文件:

alias mv='mv --suffix .xxxmv_bk'

cp同理:

alias cp='cp --suffix .xxxcp_bk'

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐