【发布时间】:2016-05-06 21:05:02
【问题描述】:
这类似于What's the Ruby equivalent of Python's os.walk?,但我感兴趣的是从叶子后面走目录树,而不是从根向外走。
即,对于像
这样的目录结构/root/
|- A/
|- a.txt
|- B/
|- b.txt
|- C/
|- c.txt
给定root,我想按以下顺序遍历它。
- /root/A/a.txt
- /root/A
- /root/B/C/c.txt
- /root/B/C
- /root/B/b.txt
- /root/B
我需要在遍历过程中替换文件内容并重命名文件和目录,因此该顺序的变化是可以的。由于目录重命名,从根目录开始并不是一个有吸引力的选择。
【问题讨论】:
-
你的意思是like this?
-
@tadman 该问题的公认答案指向 Find 模块,其文档称它“支持一组文件路径的自上而下遍历”。 OP 要求相反:自下而上的遍历。
-
如果您只是颠倒您找到的列表,它可能会起作用。要看!那里探索了几个选项。
-
出于兴趣,如果还有一个文件夹
/root/B/D包含文本文件,你期望/希望发生什么 - 你希望从 C 开始,然后找到兄弟目录?