微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何移动和编号文件?

我使用linux,bash.

我有一个目录,里面有100个文件夹,每个目录名称不同.

在这100个文件夹中的每个文件夹中都有一个名为first.bars的文件(所以我有100个名为first.bars的文件)​​.虽然所有名为first.bars,但文件实际上略有不同.

我想将所有这些文件移动到一个文件夹并重命名/编号这些文件,以便我知道哪个文件来自哪个文件夹.所以第一个first.bars文件必须重命名为001.bars,第二个文件必须重命名为002.bars ..等等.

我尝试过以下方法

ls -d * >> /home/directorywiththe100folders/list.txt
cat list.txt | while read line;
do cd $line;
mv first.bars /home/newfolder

这不起作用,因为我不能在一个文件夹中有100个名称相同的文件.所以我只需要知道如何重命名它们.重命名必须连接到cat list.txt,因为第一行是包含移动和重命名的第一个文件文件夹.该文件将被称为001.bars.

解决方法:

试着这样做:

$rename 's/^.*?\./sprintf("%03d.", $c++)/e' *.bar

如果您想了解有关此命令的更多信息,请参阅我之前给出的最近回复How do I rename multiple files beginning with a Unix timestamp – imapsync issue

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐