我的文本文件包含两列:
current directory name the new name of the last entry
d_7154/d_7161/ 'Main Integration'
d_7154/d_7161/d_9247/ 'Flows & Methodologies'
d_7154/d_7161/d_9247/d_8986/ 'General Guidelines'
d_7154/d_457/d_691/d_705/ 'Projects T to Z'
d_7154/d_457/d_691/d_6056/d_11253/d_11254/ 'Templates'
d_7154/d_457/d_691/d_6056/d_11253/d_11254/d_11255/ 'General Templates'
d_7154/d_457/d_691/d_6056/d_11253/d_11254/d_11256/ 'Team Template'
...
...
有重命名树的方法吗?主要问题是,如果我更改树中间的目录名称,列表的其余部分将变得不相关。
答案1
邮购从算法上讲,目录遍历就是您想要的。
在 TCSH 或任何其他 shell 中执行此操作可能不会令人愉快。
这是一次性行为吗?如果是这样,请像使用新名称一样将树打印到文件中,并手动重新排序列表,以便最深的目录位于第一个,然后在脚本中重命名它们:
#!/bin/sh
mv d_7154/d_457/d_691/d_6056/d_11253/d_11254/d_11256 "d_7154/d_457/d_691/d_6056/d_11253/d_11254/Team Template"
mv d_7154/d_457/d_691/d_6056/d_11253/d_11254/d_11255 "d_7154/d_457/d_691/d_6056/d_11253/d_11254/General Templates"
mv d_7154/d_457/d_691/d_6056/d_11253/d_11254 "d_7154/d_457/d_691/d_6056/d_11253/Templates"
mv d_7154/d_457/d_691/d_705 "d_7154/d_457/d_691/Projects T to Z"
mv d_7154/d_7161/d_9247/d_8986 "d_7154/d_7161/d_9247/General Guidelines"
mv d_7154/d_7161/d_9247 "d_7154/d_7161/Flows & Methodologies"
mv d_7154/d_7161 "d_7154/Main Integration"
...
...