在Linux上按文件夹的文件夹名称重命名文件

IIM

我是一个标记,在一个结构如下的文件夹中提供了很多课程资料:

学生编号-> Coursework1-> coursework.thy

每个学生都有一个名为“学生号”的文件夹,其中包含一个子文件夹coursework1,并且该子文件夹包含一个扩展名为.thy的文件。令人讨厌的是,所有文件都具有相同的课程名称。现在,我要用学生的学生编号来命名所有文件。换句话说,我不想以包含文件的文件夹命名,而是以包含文件的文件夹命名。我想保留原始文件扩展名。

最终,我想将所有这些命名文件放在一个文件夹中(不带子文件夹),但是我发现了一个问题,回答了我那部分问题:如何将文件从嵌套子目录中移出到ubuntu中的另一个文件夹中?(试图剥离许多子文件夹)

我想理想地使用终端/重击来做到这一点。

詹姆斯·伊辛

我们无法为您编写脚本,但是我可以帮助概述我建议的步骤和编程逻辑。

首先,大概是/ path / to / studentsnumbers /,您可以在其中找到上面列出的文件夹结构。将其存储在这里的变量中,我们将调用PathToStudNumbs。

PathToStudNumbs="/path/to/studentsnumbers/" 

接下来,您将要探索几个有用的工具:basename和dirname。这些将获取有关特定文件路径元素的信息。在这种情况下,您可能不需要这些文件,因为您要更改的所有文件显然都被命名为相同的文件(课程)。

由于我们不知道您如何遍历目录,因此我将根据您的具体情况来使用basename和dirname进行分类。

让我们重新构造一下如何查看当前路径。我们可以将其重做为包含我们关心的使用变量的元素的东西。(我认为下面的课程编号也会随着时间而变化。)

"${PathToStudNumbs}/${StudNumbs}/${courseworkNumb}/coursework.thy"  

如果将此内容放入到其他目录的cp语句中,则它将类似于以下内容:

cp "${PathToStudNumbs}/${StudNumbs}/${courseworkNumb}/coursework.thy" "${PathToDestination}/${StudNumbs}_${courseworkNumb}.thy" 

这将在您选择的文件夹中复制目标文件,在该文件夹中,新文件的名称将类似于123456_coursework1.thy(即学生编号,下划线,课程编号和文件扩展名)。

或者,您可以使用mv重命名现有文件,如下所示:

mv "${PathToStudNumbs}/${StudNumbs}/${courseworkNumb}/coursework.thy" "${PathToStudNumbs}/${StudNumbs}/${courseworkNumb}/${StudNumbs}_${courseworkNumb}.thy" 

询问是否需要。我会尽力而为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据文件夹名称重命名文件

根据文件夹名称重命名文件

通过文件夹名称重命名文件

使用父文件夹的名称重命名子文件夹中的文件

python:通过子文件夹名称重命名子文件夹中的文件

Bash:使用文件夹名称重命名文件(每个文件夹 1 个)

使用文件夹名称重命名文件夹中的所有图像

如果文件夹名称重复,如何根据上传的文件自动重命名文件夹

我可以使用父文件夹的名称重命名文件夹中的文件吗?

将文件从子文件夹复制到父文件夹并使用父文件夹名称重命名文件

Shell脚本从其父文件夹名称重命名多个文件

Windows CMD-根据文件夹名称重命名文件

如何使用文件夹名称重命名文件列表

使用 bash `find` 使用文件夹名称重命名文件

在不同文件夹中使用相同名称重命名文件

通过添加父文件夹名称重命名文件

从文件夹名称重命名文件的Bash脚本问题

如何根据文件夹名称重命名文件名?

重命名GitHub上的文件夹

在Java中用不同的名称重命名多个文件夹

批处理文件-根据父名称和(子)文件夹名称重命名文件

如何批量将文件重命名为文件夹名称+递增编号?我收到名称重复错误

重命名文件并添加其父文件夹名称

使用文件夹名称重命名文件并将它们移动到一个大文件夹

重命名文件夹中的文件

重命名提取文件的文件夹

重命名文件夹中的文件

重命名文件目录文件夹

如何使用其他文件夹中文件的相同名称重命名多个图像?