Linux 终端基础:重命名文件和目录 |
如何在 Linux 终端中重命名文件和目录?你可以使用 mv 命令。 是的,与用于将文件和文件夹从一个位置“移动”到另一个位置的 mv 命令相同。 你可以在“移动文件和目录”时简单地指定文件和目录的新名称。 要重命名文件,请使用: mv old_file new_file 同样,要重命名目录,请使用: mv old_dir new_dir 听起来很容易,对吧? 但我将在这里详细讨论文件重命名:
我们来一一看看。 使用 mv 命令重命名文件和目录使用 mv file1.txt file2.txt 同样,你可以重命名同一位置的目录: mv dir1 dir2 这是我重命名文件和目录的示例: 如你所见,与 cp 命令 不同,你不必使用递归选项来通过 mv 命令 处理目录。 你还可以在将文件移动到另一个位置时重命名它: mv old-file-name another_dir/new-file-name 在下面的示例中,我将名为 我将其视为剪切粘贴操作。 注: 虽然你可以将多个文件移动到另一个位置(mv file1 file2 file2 dir),但你不能使用 mv 重命名多个文件。为此,你必须采用我在以下部分中讨论的其他策略。 通过组合 mv、find 和 exec 命令重命名与某个模式匹配的多个文件注:批量重命名此类文件时要格外小心。一步错误的举动就会导致无法挽回的不良结果。
使用 假设你想通过在名称中添加 find . -type f -name "*.txt" -exec mv {} {}_old ; 这只是一个示例,你的重命名要求可能会有所不同。另外,以上仅适用于不带空格的文件名。 专业提示:在处理这样的批量操作时,你可以巧妙地使用 例如,首先查看哪些文件将被重命名: find . -type f -name "*.txt" -exec echo mv {} {}_old \; 如你所见,实际上没有重命名任何文件。但是,如果你在没有使用回显( 如果你觉得没问题,请删除 find . -type f -name "*.txt" -exec mv {} {}_old \; 使用 rename 命令轻松重命名多个文件有一个名为 该实用程序不是 GNU 工具链的一部分,也不是预安装的。因此,你必须首先使用发行版的包管理器来安装它。 对于 Debian/Ubuntu,命令为: sudo apt install rename 你可以通过以下方式使用它: rename [options] perl_regex [files] 选项有:
现在,让我们采用你在上一节中看到的相同示例。将 rename 's/\.txt$/.txt_old/' ** 我不打算在这里解释正则表达式。 正如你所看到的,它按预期工作。 |