2.33 重命名文件和文件夹

mv

很快将看到,除了移动文件以外,mv还能做更多的事情,这些事情可能看起来有点违背直觉,但是在考虑片刻之后又觉得很有道理。

现在,我们要介绍mv命令另一个很酷的功能。虽然mv命令是用来移动文件的(毕竟,正如其名字所示),但是它也可以用来重命名文件。如果要移动文件,就必须为它指定一个目标名称。没有规则要求目标名称必须与源文件名称相同,所以shell用户从一开始就依靠mv命令来重命名文件和目录。

  1. $ pwd
  2. /home/scott/libby/by_pool
  3. $ ls -F
  4. libby_by_pool_02.jpg liebermans/
  5. $ mv liebermans/ lieberman_pool/
  6. $ ls -F
  7. libby_by_pool_02.jpg lieberman_pool/

使用cp命令移动目录时,为了复制真实的目录结构,必须指定-R(或--recursive)选项。从前一个例子可以看到,mv命令并非如此,它可以顺利地移动或重命名目录,根本不需要指定任何额外选项,与cp命令相比,这是非常好的改变。

警告 对于mv命令,有个非常重要但又很容易被忽略的细节需要知道。如果你在移动一个指向目录的软链接,就需要特别注意输入的内容。假设在你的home目录中有一个名为dogs的软链接指向/home/scott/pictures/dogs,而你想将这个链接移动到/home/scott/libby子目录中。以下这个命令只移动软链接:

  1. $ mv dogs ~/libby

而以下这条命令移动的是软链接所指向的目录:

  1. $ mv dogs/ ~/libby

区别在什么地方呢?就是在软链接的末端加了一个简单的斜杠(“/”)。没有斜杠的话,移动的是软链接本身,而且只是这个链接;有了斜杠的话,移动的将是软链接指定的目录,而不是软链接本身。一定要小心啊!