【问题标题】:Equivalent to 'Tree' command but not recursive?相当于“树”命令但不是递归的?
【发布时间】:2021-05-12 05:00:29
【问题描述】:

我正在寻找 Linux 中“树”命令的替代方案,但我希望它不是基于递归算法。

Tree 命令基于递归算法,从其描述中可以看出:

Tree is a recursive directory listing program that produces a depth indented listing of files.

还有其他不递归的方式吗?

谢谢!

【问题讨论】:

  • 是的,在 Unix 中是 ls,在 DOS 中是 dir
  • 您好 Thomas,感谢您的回复。但是,“ls”不等同于 Tree。我正在寻找一个命令来编写整个树。 'ls' 只打印当前目录的内容。
  • 写入整个目录树,无论深度如何,本质上都是递归操作。您认为非递归实现的意义何在?
  • 如果你想打印出整个树,linux 中几乎所有的命令都会使用递归。例如ls 有一个 -R 选项,该选项的文档暗示了递归算法。大多数现实生活中的实现可能是递归的。你可能想看看这个讨论stackoverflow.com/questions/3455625/…
  • tree 命令描述中的“递归”一词并不一定表示该实现使用递归(尽管可能是这种情况)。这只意味着它将下降到所有目录,类似于几个命令的-r-R 选项。如果您想讨论实现,您应该在问题中显示实现。

标签: linux


【解决方案1】:

使用tree -L <level>,您可以指定要下降多少级目录。在您的情况下,它将是:

树 -L 1

【讨论】:

  • 感谢您的回复。但这不是我想要的,我想获得与“树”命令完全相同的输出,包括所有级别,但是我希望实现不是递归的。
【解决方案2】:

我认为您可能正在寻找仅显示目录树(没有文件)的 -d 标志。 来自tree man page

-d

仅列出目录。

tree -d /path/to/dir

【讨论】:

    猜你喜欢
    • 2020-01-20
    • 2012-02-24
    • 1970-01-01
    • 2010-09-27
    • 2012-06-10
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多