linux - 重命名以文件夹名称为前缀的文件夹中的所有文件

标签 linux bash shell ubuntu terminal

<分区>

我有一堆目录,每个目录都有多个文件。

dir1 
|- part1.txt 
|- part2.txt . . .

dir2 
|- part1.txt 
|- part2.txt . . .

我想将内部文件(part1.txt 等)重命名为类似(dir1_part1.txt)的名称。如何在 ubuntu 中完成此操作?

This question解释如何添加或删除后缀前缀。但是如何添加前缀作为目录名称

最佳答案

有一个工具叫做 perl-rename有时称为 rename,不要与 rename from util-linux 混淆.此工具采用 perl 表达式并相应地重命名:

perl-rename 's~/~_~' dir1/* dir2/*

上面的代码会将 dir1dir2 中的所有文件重命名并移动到以下位置:

dir1/file1 -> dir1_file1
dir1/file2 -> dir1_file2
dir1/file3 -> dir1_file3

You can play with the regex online

关于linux - 重命名以文件夹名称为前缀的文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804371/

相关文章:

bash - 在 shell 脚本中对多个非标准列进行排序

linux - 陷阱在 linux 脚本中不捕获退出代码

linux - 从文本文件中获取值并在 UNIX 环境中进行计算

在 C 中完全删除运行时的函数调用

linux - 应如何通过设备树配置 uio_dmem_genirq 驱动程序

linux - 如何使用 "awk"执行具有相同尾部的多个文件并导出到一些具有新尾部的新文件?

shell - 使用Power Shell获取具有页面布局的SharePoint页面列表

linux - 在 linux shell 命令中替换输出文件扩展名

linux - 安装 HTML::TreeBuilder::XPath 失败

linux - 如何根据多于 1 列的条件删除行