重命名所有文件夹centos

Renaming all the folders centos

谁能告诉我如何从终端重命名目录中的所有文件夹? 每个文件夹都是 "id-namestring" 的格式,有什么方法可以使用此模式重命名以删除文件夹名称中 "id" 之后的所有内容? 例如,如果文件夹名称为“123-abcd&efg”,则应将其重命名为“123”

find top-level-dir -type d -print0 | xargs -0 rename 's/(\d+)-.+//'

这将重命名目录 top-level-dir.

中包含的所有目录 (-type d)

xargs用于应付文件列表很长的情况。 -print0-0 适用于文件名包含空格的情况。

s/(\d+)-.+// 是用于重命名的实际正则表达式。

如果您觉得合适,可以使用 Perl 表达式。

在此 link 中,您可以找到使用 this perl 表达式重命名命令的概述