一尘不染

将多个目录中的文件重命名为目录名

linux

我有这样的事情:

v_1/file.txt
v_2/file.txt
v_3/file.txt
...

我想将这些文件重命名为以下形式:

v_1.txt
v_2.txt
v_3.txt
...

在同一目录中。

我想我可以使用,rename但是我不知道如何在文件夹和文件重命名的同时使用它。


阅读 149

收藏
2020-06-07

共1个答案

一尘不染

可以使用bash for loop和mv

for subdir in *; do mv $subdir/file.txt $subdir.txt; done;

请注意,如果目录名称包含空格,则上述解决方案将不起作用。相关链接

另一种基于注释的解决方案(也适用于名称中也包含空格的目录):

find . -type d -not -empty -exec echo mv \{\}/file.txt \{\}.txt \;
2020-06-07