![通过添加父文件夹名称来重命名文件](https://linux22.com/image/1065051/%E9%80%9A%E8%BF%87%E6%B7%BB%E5%8A%A0%E7%88%B6%E6%96%87%E4%BB%B6%E5%A4%B9%E5%90%8D%E7%A7%B0%E6%9D%A5%E9%87%8D%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6.png)
我有一个由一组子目录组成的父目录。每个子目录由一个文件列表组成。
场景如下:
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
不同的“重命名”命令之间有什么区别?