迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

在 Bash 中重命名文件

作者:迹忆客 最近更新:2023/06/09 浏览次数:

借助 Bash 脚本,您可以自动执行您的任务。 文件重命名是各种系统的常见任务。

您可以手动重命名所有文件。 但是,如果您的文件名有序列,最好自动执行此任务。

这样,您可以轻松地以正确的顺序重命名目录中的所有文件。

在本文中,我们将介绍一种方法,通过它您可以轻松地重命名目录中的所有文件。 此外,我们将看到必要的示例和解释,以使主题更容易理解。


在 Bash 中使用 mv 命令重命名文件

Bash 脚本包含一个称为 mv 的内置命令。 mv 命令主要用于将目录和文件从一个位置移动到另一个位置。

它还可用于重命名文件和目录。 关于此命令的一个重要事项是,如果您不指定文件的新名称,文件名将在其新位置相同。

此命令的一般语法是 $ mv [OPTIONS] SOURCE DESTINATION 。 此命令的可用选项是:

  1. mv -f - 此标志将在没有提示的情况下通过覆盖目标文件来强制移动。
  2. mv -i - 此标志用于覆盖前的交互式提示。
  3. mv -u - 此标志用于更新。 这只会在文件是新源而不是目标时移动文件。
  4. mv -v - 此标志将打印源和目标的所有文件。
  5. man mv - 此标志将打开帮助手册。

假设我们有一个具有以下顺序的文件列表。

1_file.txt
2_file.txt
3_file.txt
4_file.txt
5_file.txt
6_file.txt

现在,看看下面的代码示例。

for file in *.txt
 do
   mv "$file" "${file/_file.txt/_Textfile.txt}"
 done

在上面的示例中,我们将所有文件重命名为 .txt 类型。 为此,我们使用了带有命令 mv 的 for 循环。

现在用于此目的的一般语法是 mv "$LoopVar" "${LoopVar/PreviousName.txt/NewName.txt}"

这里你要注意,你需要在文件名中包含一个循环变量; 否则,它可能会导致覆盖,因为它是系统生成的名称。

现在当你运行上面的代码时,你会看到你的所有文件都被重命名为如下所示。

1_Textfile.txt
2_Textfile.txt
3_Textfile.txt
4_Textfile.txt
5_Textfile.txt
6_Textfile.txt

此命令的一个重要事项是指定文件名的公共部分以标识文件。 它可以是文件类型或文件名中的任何其他常见模式。

否则,该命令可能无法成功重命名所有文件。


在 Bash 中使用 rename 命令重命名文件

Bash 脚本中还有一个名为 rename 的第三方命令。 但是你需要在使用它之前安装它。

要在您的 shell 环境中安装此命令,您可以按照以下适用于 Ubuntu 和 Debian 的命令进行操作。

$ sudo apt install rename

之后,我们可以像下面这样重命名文件。

rename [Your Options] 's/[Current Filename]/[New Filename]/' [Filename]

此命令还包含一些选项,如下所示。

  1. -a - 此选项将替换除第一个文件之外的所有文件名。
  2. -f - 此选项将强制覆盖现有文件。
  3. -h - 此选项将显示帮助文本。
  4. -i - 此选项将在覆盖现有文件之前显示提示通知。
  5. -l - 此选项将替换最后出现的元素而不是第一个出现的元素。
  6. -n - 此选项执行空运行。
  7. -s - 此选项重命名目标而不是符号链接。
  8. -v - 此选项以详细版本显示输出。
  9. -V - 此选项显示命令版本。

我们可以使用以下命令重命名上述文件集。

rename -v 's/_Testfile/_Test/' *.txt

它将显示以下输出。

1_Testfile.txt renamed as 1_Test.txt
2_Testfile.txt renamed as 2_Test.txt
3_Testfile.txt renamed as 3_Test.txt
4_Testfile.txt renamed as 4_Test.txt
5_Testfile.txt renamed as 5_Test.txt
6_Testfile.txt renamed as 6_Test.txt

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便