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

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

我有一个由一组子目录组成的父目录。每个子目录由一个文件列表组成。

场景如下:

v_1:
filenames.txt

v_2:
labels.txt

v_3:
coding.txt

我的预期输出是什么?

v_1:
v_1_filenames.txt

v_2:
v_2_labels.txt

v_3:
v_3_coding.txt

我已尝试什么来解决这个问题?

rename -n 's/(.*)\//$1\/$1_/' */*

打印

rename(v_1/filenames.txt, v_1/v_1_filenames.txt)
rename(v_2/labels.txt, v_2/v_2_labels.txt)
rename(v_3/coding.txt, v_3/v_3_coding.txt)

但是它不起作用。为了确认我这样做了:

ls *

我得到:

v_1:
filenames.txt

v_2:
labels.txt

v_3:
coding.txt

有什么提示吗?谢谢

答案1

只需删除该选项即可-n。从man prename*:

-n, --no-act
        No Action: show what files would have been renamed.

* 有多个命令称为;我假设你在 Ubuntu 16.04 或更早版本上rename使用,尽管选项在大多数其他版本中执行相同的操作。有关详细信息,请参阅prename-n不同的“重命名”命令之间有什么区别?

相关内容