1.功能:移动文件或者修改文件的名称
2.用法:mv [选项] 源文件 目标文件 或者 源文件 目标目录
3.参数:
-b,--backup[=CONTROL] 对已存在的文件进行备份
-f, --force 强制覆盖
-i, --interactive 若目标文件存在,询问是否覆盖
-n, --no-clobber 不允许覆盖
-t, --target-directory=DIRECTORY 将所有的源文件移动到目标目录中
-T, --no-target-directory 把目标文件当成一个正常的文件
-u, --update 只有当源文件比目标文件要新时才能移动
4.例子
例1:将test_1.txt文件改名成test_mv.txt
[[email protected] home]# cd test
[[email protected] test]# ls
test_1 test_1.txt test_monday.txt
[[email protected] test]# mv test_1.txt test_mv.txt
[[email protected] test]# ls
test_1 test_monday.txt test_mv.txt
例2:使用-b参数,在修改test_1.txt的名称时,会将test_mv.txt 命名成test_mv.txt~,覆盖文件之前会询问是否覆盖
[[email protected] test]# ls
test_1 test_1.txt test_mv.txt
[[email protected] test]# mv -b test_1.txt test_mv.txt
mv:是否覆盖"test_mv.txt"? y
[[email protected] test]# ls
test_1 test_mv.txt test_mv.txt~
例3:强制覆盖test_mv.txt
[[email protected] test]# ls
test_1 test_1.txt test_mv.txt
[[email protected] test]# mv -f test_1.txt test_mv.txt
[[email protected] test]# ls
test_1 test_mv.txt
例4:带有-n参数,不允许覆盖文件,也不会报错
[[email protected] test]# mv -n test_1.txt test_mv.txt
[[email protected] test]# ls
test_1 test_1.txt test_2.txt test_mv.txt
例5:将test_*文件复制到/test_1文件夹中
[[email protected] test]# ls
test_1 test_1.txt test_2.txt test_3.txt
[[email protected] test]# mv -t test_1 test_*.txt
[[email protected] test]# ls
test_1
[[email protected] test]# cd test_1/
[[email protected] test_1]# ls
test_1.txt test_2 test_2.txt test_3.txt
例6: 使用-u参数更新文件,test_1.txt的时间早于test_mv.txt,不能覆盖;test_2.txt的时间晚于test_mv.txt,可以将其覆盖。
[[email protected] test]# ls -lh
总用量 16K
drwxr-xr-x 3 root root 4.0K 5月 16 18:09 test_1
-rw-r--r-- 1 root root 16 5月 16 18:00 test_1.txt
-rw-r--r-- 1 root root 16 5月 16 18:12 test_2.txt
-rw-r--r-- 1 root root 16 5月 16 18:10 test_mv.txt
[[email protected] test]# mv -u test_1.txt test_mv.txt #未报错,未覆盖
[[email protected] test]# ls -lh
总用量 16K
drwxr-xr-x 3 root root 4.0K 5月 16 18:09 test_1
-rw-r--r-- 1 root root 16 5月 16 18:00 test_1.txt
-rw-r--r-- 1 root root 16 5月 16 18:12 test_2.txt
-rw-r--r-- 1 root root 16 5月 16 18:10 test_mv.txt
[[email protected] test]# mv -u test_2.txt test_mv.txt
mv:是否覆盖"test_mv.txt"? y
[[email protected] test]# ls -lh
总用量 12K
drwxr-xr-x 3 root root 4.0K 5月 16 18:09 test_1
-rw-r--r-- 1 root root 16 5月 16 18:00 test_1.txt
-rw-r--r-- 1 root root 16 5月 16 18:12 test_mv.txt