移动文件和目录

前面小节介绍了如何创建文件和目录、删除文件和目录,本小节介绍如何使用 mv 命令移动文件和目录。

1. 移动文件或目录至另外一个目录下

可以使用 mv file_name 路径 这种格式,移动文件至其他目录下,后面跟的路径可以是相对路径,也可以是绝对路径,这里的路径操作和 cd 命令类似,下面介绍移动文件命令:

ls -l # 列出当前目录下所有文件

mv test.txt /usr/local # 使用 mv 命令将 text.txt 移动到 /usr/local 路径下

ls -l # 再次查看当前目录下的文件

cd /usr/local # 进入 /usr/local 文件夹下

ls -l # 查看 /usr/local 目录下的文件信息

执行结果如下图:

图片描述

可以看到 text.txt 文件已经被移动到 /usr/local 目录下了。

Tips:注意这里直接移动可能会造成同名文件或目录覆盖。

2. 带有覆盖提示的文件或移动

如果要移动的目标路径下有同名文件,若不想同名文件被覆盖,可以使用 -i 参数询问是否需要覆盖,这里可以自行在两个目录下创建同名的文件:

ls -l # 列出当前目录下所有文件

mv -i error.log study/ # 使用 -i 参数询问是否覆盖目标路径下的同名文件

ls -l # 再次查看当前目录下的文件

cd study/ # 进入 study/ 文件夹下

ls -l # 查看 study/ 目录下的文件信息

执行结果如下图:

图片描述

Tips:这里只是演示了移动文件,移动目录和移动文件的操作是一样的,参照上述步骤即可。

3. mv 移动命令参数介绍

可以使用 mv --help 命令来查看 mv 相关的参数介绍:

mv --help

执行结果如下图:

图片描述

下面列举出 mv 常见的参数和描述,仅供参考:

mv 命令参数名称 功能与作用描述
-b 若有文件覆盖时,则覆盖前先行备份。
-f 表示 --force,强制的意思,若目标文件已存在,则不会询问直接覆盖掉。
-i 表示 --interactive,若目标文件已经存在时,就会询问是否覆盖。
-n 表示 --no-clobber,不会覆盖已经存在的文件。
-u 表示 --update,若目标文件已经存在,且 source 比较新,才会更新
-t 表示 --target,指定 mv 的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

4. 小结

本小节介绍了如何将文件或目录移动至另外一个目录下,需要注意的是在移动文件或目录过程中目标地址中是否存在同名文件,若存在同名文件时可能会造成文件或目录的覆盖,从而使原来已经有的文件丢失,所以尽量避免使用 -f 强制移动,或者在移动前修改文件名,或者使用 -b-i 参数询问是否覆盖。