我想做一些类似ls -t
的事情,但是也包含了子目录中的文件,但是问题是我不想输出像ls -R
那样的格式,它是这样的:
[test]$ ls -Rt
b testdir test
./testdir:
a
我希望它的格式像find
命令显示子目录中的文件。即:
[test]$ find .
.
./b
./test
./testdir
./testdir/a
但是find
似乎没有按照最后更新时间对结果进行排序。
那么,如何以find
的格式,但按时间倒序列出目录和子目录中的所有文件呢?
8条答案
按热度按时间vd8tlhqk1#
ls -lR
用于显示当前目录下的所有文件、目录和子目录ls -lR | more
用于显示一个流中的所有文件。oewdyzsn2#
试试这个:
r55awzrz3#
如果你想查看的文件数量在最大参数限制之内,你可以使用globbing来获取你想要的,如果你有globstar支持,可以使用递归。
仅限2层深度用途:
ls -d * */*
对于globstar,递归用途:
ls -d **/*
ls
的-d
参数告诉ls
不要递归作为参数传递的目录(因为您使用shell全局匹配来执行递归),这阻止了ls
使用其递归格式。tkclm6bt4#
尝试
find . -type d
或find . -type d -ls
50pmv0ei5#
缺点:只适用于一定数量的文件。如果你有大量的文件,你需要更复杂的东西
yv5phkfx6#
试试这个:
b0zn9rqh7#
wfg5475's answer中的命令工作正常,只需要添加一个东西来只显示一个目录&子目录中的文件:
补充一点:
^d
忽略列表输出中的所有目录pgvzfuti8#
如果可以使用GUI,请尝试
nautilus .
,然后从搜索栏搜索。默认情况下,此搜索列出目录和子目录中的所有文件。但是,无法按时间倒序排序。