Rename

如何通過條目重命名目錄樹條目

  • March 6, 2013

我的文本文件包含兩列:

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'
...
...

有沒有重命名樹的方法?主要問題是,如果我更改樹中間的目錄名稱,則列表的其餘部分變得不相關。

在算法上,後序目錄遍歷是您想要的。

在 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"  
...  
...  

引用自:https://unix.stackexchange.com/questions/67052