# 如果目标文件已存在,则会先删除目标文件,然后重命名源文件 $ echo aaa > a $ echo bbb > b $ mv a b mv: overwrite 'b'? y $ more b aaa $ ls b
# -b备份文件,默认名称为文件名后加~ $ echo aaa > a $ echo bbb > b $ mv -b a b mv: overwrite 'b'? y $ ls b b~ $ more b aaa $ more b~ bbb
# -S指定备份文件后缀.bak $ echo aaa > a $ echo bbb > b $ mv -S .bak a b mv: overwrite ‘b’? y $ ls b b~ b.bak $ more b aaa $ more b.bak bbb
# 指定备份文件名格式 $ echo aaa > a $ echo bbb > b $ ls a b $ mv -fv --backup=nil a b ‘a’ -> ‘b’ (backup: ‘b~’) $ ls b b~ $ echo aaa > a # 指定为数字格式名称 $ mv -fv --backup=t a b ‘a’ -> ‘b’ (backup: ‘b.~1~’) $ ls b b~ b.~1~ # 自动累加 $ echo aaa > a $ mv -fv --backup=t a b ‘a’ -> ‘b’ (backup: ‘b.~2~’) # nil已存在数字格式文件则继续创建数字格式的备份文件 $ echo aaa > a $ mv -fv --backup=nil a b ‘a’ -> ‘b’ (backup: ‘b.~3~’)
$ echo aaa > a $ echo bbb > b $ touch b $ ll -rw-r--r-- 1 root root 4 Feb 10 20:36 a -rw-r--r-- 1 root root 4 Feb 10 20:37 b # -u只更新文件,由于文件b的时间比a新,所以不会覆盖 $ mv -u a b $ more b bbb # -n目标文件已存在则跳过 $ mv -n a b $ more b bbb # 强制覆盖 $ mv -f a b $ more b aaa