我Ubuntu
可以很容易地使用自然排序进行递归搜索。简单的ls -1Rv
将仅以自然排序列出所有子目录的文件名。示例输出如下:
.:
test4
tmp2
tmp3
./tmp2:
test1
test2
./tmp3:
test3
它列出当前内容,然后遍历每个目录。一切都很好地分开。
该FreeBSD
选项-v
不存在。当我没有子目录时,我可以进行ls -1 | sort -n
自然排序。但是,现在我有子目录,管道sort -n
不能很好地工作。不出所料,这些ls -1R | sort -n
内容被归为一个巨大的列表。示例输出如下:
./tmp2:
./tmp3:
test1
test2
test3
test4
tmp2
tmp3
我们没有将每个子目录分开在自己的列表中,而是有一个巨大的列表。无论如何,有没有可以复制ls
功能的地方,我可以Ubuntu
在那里列出并分别对每个列表进行排序?FreeBSD
FreeBSD
我的搜索发现了类似的主题这,但他们都使用管道方法,并且似乎没有谈论子目录会发生什么。我也读过FreeBSD ls 手册,但它没有提到有一个自然排序。我没有看到任何有帮助的内容FreeBSD排序手册任何一个。
答案1
您可能会认为它作弊,但您可以安装:
LSD(LS 豪华版)这是一个非常有能力的升级/变体。
GNU 核心实用程序您习惯使用哪些工具。要不就GNU 语言独自的。
安装:
pkg install lsd
pkg install coreutils