在Linux中,我想查找所有文件夹/子文件夹名称并重定向到文本文件
我试过ls -alR> list.txt,但它提供了所有文件+文件夹
答案 0 :(得分:33)
您可以使用find
find . -type d > output.txt
或tree
tree -d > output.txt
tree
,如果您的系统未安装。
如果您使用ubuntu
sudo apt-get install tree
如果您使用的是mac os
。
brew install tree
答案 1 :(得分:6)
find . -type d > list.txt
将列出当前路径下的所有目录和子目录。如果要列出当前路径以外的所有目录,请将.
更改为其他路径。
如果要排除某些目录,可以使用否定条件对其进行过滤:
find . -type d ! -name "~snapshot" > list.txt
答案 2 :(得分:2)
除了在其他答案中列出的find
之外,更好的shell允许recurvsive globs和过滤glob匹配,所以在zsh
例如......
ls -lad **/*(/)
...列出所有目录,同时保留所需的所有“-l”详细信息,否则需要使用类似的东西重新创建...
find . -type d -exec ls -ld {} \;
(不像其他答案那么简单)
find的好处是它更独立于shell - 更加可移植,即使对于来自C / C ++程序的system()
调用等也是如此。