2.32 移动和重命名文件
mv
用cp
命令复制文件看起来非常简单,但是移动文件呢?在命令全名的英文单词中去掉多余的相似元音,我们就有了mv
命令,是move
的简写。
很快你将注意到,前面学到的cp
命令的大部分选项与mv
命令使用的选项类似。这不足为奇,毕竟mv
命令实际上执行了一个cp-a
操作,在成功复制文件后再移除原有的文件。
用最简单的话来说,mv
命令的作用就是将文件系统的文件从一个地方移动到另一个地方。
$ pwd
/home/scott/libby
$ ls
libby_arrowrock.jpg libby_bak.jpg libby.jpg
➥libby_on_couch.jpg on_floor
$ ls ~/pictures/dogs
libby_on_floor_01.jpg libby_on_floor_03.jpg
libby_on_floor_02.jpg libby_on_floor_04.jpg
$ mv ~/pictures/dogs/libby_on_floor_04.jpg
➥libby_on_floor_04.jpg
$ ls
libby_arrowrock.jpg libby.jpg
➥libby_on_floor_04.jpg
libby_bak.jpg libby_on_couch.jpg on_floor
$ ls ~/pictures/dogs
libby_on_floor_01.jpg libby_on_floor_02.jpg
➥libby_on_floor_03.jpg
和使用cp
命令一样,如果你不喜欢重复输入文件名称,也可以使用点号“.
”来表示当前目录。
$ pwd
/home/scott/libby
$ ls
arrowrock.jpg libby.jpg on_couch.jpg on_floor
$ ls ~/pictures/dogs
on_floor_01.jpg on_floor_03.jpg
on_floor_02.jpg on_floor_04.jpg
$ mv ~/pictures/dogs/on_floor_04.jpg .
$ ls
arrowrock.jpg on_couch.jpg on_floor_04.jpg
libby.jpg on_floor
$ ls ~/pictures/dogs
on_floor_01.jpg on_floor_02.jpg on_floor_03.jpg
如果你需要将文件移动到另一个目录,并保持文件名相同,则只需要指定目录。目标文件名默认保持不变。
$ pwd
/home/scott/libby
$ ls
arrowrock.jpg on_couch.jpg on_floor_04.jpg
libby.jpg on_floor
$ ls on_floor
on_floor_01.jpg on_floor_02.jpg on_floor_03.jpg
$ mv on_floor_04.jpg on_floor
$ ls
arrowrock.jpg on_couch.jpg on_floor_04.jpg
libby.jpg on_floor
$ ls on_floor
on_floor_01.jpg on_floor_03.jpg
on_floor_02.jpg on_floor_04.jpg
为了直观地表达on_floor
实际上是一个目录,在文件要移动到的目录名后面写个“/
”符号加以标识,是个很好的主意,如mv libby_on_ floor_04.jpg on_floor/
。如果on_floor
不是目录,mv
命令就不会起作用,这样可以防止你无意间覆盖了其他文件。
说明
cp
和mv
命令使用很多相同的选项,这些选项在每个命令中的运行方式也相同。例如,-v
可以在复制和移动文件时显示执行过程,-i
在复制和移动文件时交互式地提示是否覆盖已经有的文件。