当前位置: 首页 > 面试题库 >

在Linux上将一组文件重命名为001、002 ...

袁智明
2023-03-14
问题内容

我最初有一组图像,格式为image_001.jpg,image_002.jpg,…

我经历了他们,并删除了几个。现在,我想将剩余的文件重命名为image_001.jpg,image_002.jpg,…

是否有Linux命令可以很好地做到这一点?我对重命名很熟悉,但是看不到任何命令来排序这样的文件名。我在想,既然ls *.jpg按顺序列出文件(有间隔),解决方案是将其输出传递到bash循环或其他东西中?


问题答案:

如果我理解正确,则有image_001.jpg,image_003.jpg,image_005.jpg,并且您想重命名为image_001.jpg,image_002.jpg,image_003.jpg。

编辑:这被修改为将临时文件放在当前目录中。正如Stephan202所指出的,如果temp在不同的文件系统上,则这可能会产生很大的不同。为了避免在循环中命中临时文件,它现在通过image *

i=1; temp=$(mktemp -p .); for file in image*
do
mv "$file" $temp;
mv $temp $(printf "image_%0.3d.jpg" $i)
i=$((i + 1))
done


 类似资料:
  • 问题内容: 我有大量的格式文件,以及。 如何重命名这些文件,使它们全部为大写,而忽略名称的数字部分? 问题答案:

  • 问题内容: 我必须递归重命名完整的文件夹树,以便任何地方都没有大写字母(这是C ++源代码,但这无关紧要)。 忽略CVS和Subversion版本控制文件/文件夹的加分点。首选方法是shell脚本,因为shell应该在任何Linux机器上都可用。 关于文件重命名的细节,有一些有效的论据。 我认为小写相同的文件应被覆盖;这是用户的问题。在忽略大小写的文件系统上签出时,它也会用后者覆盖第一个文件系统。

  • 问题内容: 我需要有关bash脚本的帮助。脚本需要将目录中的所有文件重命名为其md5 sum +扩展名。 我在下面找到了bash脚本,但是需要对其进行更改,以便添加扩展名。 问题答案: 这可能对您有用: 或者GNU sed可以做的更短:

  • 问题内容: 我正在尝试使用mv命令执行三件事,但不确定是否可行?可能需要一个脚本。不知道怎么写。所有文件都在同一文件夹中。 1)以v9.zip结尾的文件应该只是.zip(已删除v9) 2)包含_的文件应为- 3)在大写字母旁边的小写字母(或小写字母旁边的大写字母)的文件之间应有一个空格。因此,MoveOverNow将变为“现在移过”,而ruNaway将变为ruN离开。[AZ] [az]或[az]

  • 文件重命名 文件重命名 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:更改名称 * * 程序会创建一个操作文件的函数并导出到msh命令列表 * 在