如何在Linux中重命名目录

重命名目录是您在Linux系统上经常需要执行的最基本的操作之一。 您可以单击几次鼠标或使用命令行终端从GUI文件管理器重命名目录。

本文介绍了如何使用命令行重命名目录。

重命名目录

在Linux和类似Unix的操作系统中,您可以使用 mv (缺少移动)命令将文件和目录从一个位置重命名或移动到另一位置。

的语法 mv 用于移动目录的命令如下:

mv [OPTIONS] source destination

例如,重命名目录 dir1dir2 您将运行:

mv dir1 dir2

重命名目录时,必须为精确指定两个参数 mv 命令。 第一个参数是目录的当前名称,第二个参数是新名称。

重要的是要注意 dir2 已经存在, dir1 被移到 dir2 目录。

要重命名不在当前工作目录中的目录,您需要指定绝对路径或相对路径:

mv /home/user/dir1 /home/user/dir2

重命名多个目录

重命名单个目录是一项简单的任务,但是一次重命名多个目录可能是一个挑战,特别是对于新Linux用户而言。

几乎不需要一次重命名多个目录。

使用重命名多个目录 mv

mv 该命令一次只能重命名一个文件。 但是,它可以与其他命令结合使用,例如 find 或内部循环可一次重命名多个文件。

这是显示如何使用Bash的示例 for 循环将当前日期附加到当前工作目录中所有目录的名称中:

for d in *; do 
  if [ -d "$d" ]; then
    mv -- "$d" "${d}_$(date +%Y%m%d)"
  fi
done

让我们逐行分析代码:

  • 第一行创建一个循环并遍历所有文件的列表。
  • 第二行检查文件是否为目录。
  • 第三行将当前日期附加到每个目录。

这是使用相同任务的解决方案 mv 与…结合 find

find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' ;

find 命令将所有目录传递到 mv 一一使用 -exec 选项。 字符串 {} 是当前正在处理的目录的名称。

从示例中可以看到,使用 mv 这不是一件容易的事,因为它需要对Bash脚本有充分的了解。

重命名多个目录 rename

rename 该命令用于重命名多个文件和目录。 该命令比 mv 因为它需要基本的正则表达式知识。

有两个版本 rename 使用不同语法的命令。 我们将使用Perl版本的 rename 命令。 根据给定的perl正则表达式重命名文件。

下面的示例显示如何用下划线替换当前工作目录中所有目录的名称中的空格:

find . -mindepth 1 -prune -type d | rename 'y/ /_/'

为了安全起见,请通过 -n 选择 rename 在不重命名的情况下打印要重命名的目录的名称。

这是另一个示例,显示如何将目录名转换为小写:

find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'

结论#

我们已经向您展示了如何使用 mv 命令来重命名目录。

如果您有任何疑问或反馈,请随时发表评论。

重命名MV终端

Sidebar