如何按上次修改日期对ls的输出进行排序?

评论

相关(不一定重复):Unix / Linux查找并按修改日期排序

#1 楼

ls -t


或(反向显示,最新显示在底部):

ls -tr


ls手册页对此进行了详细说明,并列出了其他内容选项。

评论


ls -halt供人类阅读,显示隐藏的打印详细信息,并按日期排序。

– Evgeni Sergeev
13年10月1日在5:24

如果有人想知道,则-t和-r参数都在POSIX标准中有关ls的部分中指定,因此应该在Unices之间兼容。

–马克·阿默里(Mark Amery)
15-10-27在12:09

ls -llt用于显示日期时间戳和排序

– Harshul Pandav
16-09-26在20:01

对的,这是可能的

–Ashraf.Shk786
17年2月20日在13:09

@EvgeniSergeev不要记忆ls-暂停一个简单的错误输入可能会导致服务器崩溃! linux.die.net/man/8/halt

–艾萨克
17年7月9日在21:43

#2 楼

试试这个:ls -ltr。它将使您最近到列表的末尾

评论


我用它来获取Git存储库中文件的最后编辑日期列表。 ls -alt $(git ls-files -m)谢谢!

– NobleUplift
19年8月14日在22:07

#3 楼

要获得完整的答案,请使用我的内容:ls -lrth

将其放入启动脚本/etc/bashrc中并分配如下别名:alias l='ls -lrth'重新启动终端,您应该可以键入l并查看长列表文件。

评论


如果要在运行时将其添加到目录中,也可以调用源/ etc / bashrc。

–wallenpoole
2015年2月11日在7:57

您也可以只为您的用户将其添加到〜/ .bash_aliases中(如果文件尚不存在,则可以创建该文件

–迪尼
18年4月24日在1:23

#4 楼

我有时会这样使用:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr




find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr


递归地查看最后修改了哪些文件5分钟。

...或现在,使用最新版本的GNU,请查找:

find . -type f -mmin -5 -exec ls -ltr {} +


...甚至不限于文件:

find . -mmin -5 -exec ls -ltrd {} +


(请注意,将-d切换到ls不会显示目录的内容)

更鲁棒的方式?

看看我的分析器,以查找并按修改日期排序

评论


递归的意思是它列出了子目录中的所有文件,难道ls已经没有这样做的开关了吗?

– Jiggunjer
15年5月14日在16:28

@jiggunjer ls -Rltr将按dir排序,然后按日期排序,找到-type f -mmin -5 -exec ls -ltr {} +只会打印最近5分钟内修改的文件,按日期排序,而不考虑目录树!

– F. Hauri
16 Dec 7'在18:08

请注意,如果文件列表太长而无法作为一次shell调用传递给ls(unix.stackexchange.com/a/118200/27186),则此方法将无效-然后您会看到一堆排序的文件,然后另一堆已排序的文件等,但整个列表不会被排序。请参阅superuser.com/questions/294161/…,以使用find对较长的列表进行排序。

–锤子
19-09-11在7:21



@unhammer是的,为了安全起见,请参阅我最近对Unix / Linux的分析器,并按修改的日期排序

– F. Hauri
19 Sep 11'在8:25

#5 楼

添加:

alias lt='ls -Alhtr'


$homedir/.bashrc

#6 楼

助记符

对于不要忽略以.开头的条目并按日期排序(最新的优先):

ls -at


对于不要忽略条目以.开头并按日期反向排序(最旧的优先):

ls -art


为避免忽略以.开头的条目,请使用长列表格式并按日期排序(最新的):

ls -alt


对于打印可读的尺寸,请不要忽略以.开头的条目,使用长列表格式并按日期排序(最新的优先)( @EvgeniSergeev注意):

ls -halt


,但请注意最后一个,因为简单的类型错误会导致服务器崩溃...(@ Isaac注意)

#7 楼

查找文件系统上最多经过3 * 24小时(3天)修改的所有文件,直到现在:

find / -ctime 3


#8 楼

要显示按日期排序的10个最近的日期,我可以使用类似以下内容的方法:

评论


它给出了-t head -2和ls -tr | tail -2给出相同的结果,选项(-t / -tr)应该保持固定,并修改尾部/头部,反之亦然,同时修改这两者就像修改内容一样

– DDS
18年6月27日在16:09

您看到上面的评论了吗?确实,应该在两个命令中都使用head(也可以更改排序顺序),或者在两个命令中都使用ls -t(始终按日期降序排序)。

– Arjan
2月28日上午11:15

#9 楼

仅使用非常基本的Unix命令:

ls -nl | sort -k 8,8n -k 6,6M


这在Linux上有效;第8列是“ n”(数字),第6列是“ M”,月。

我是sort的新手,所以这个答案可能会有所改善。更不用说,它需要lssort的其他选项才能使用确切的时间戳,但并非每个人都需要此时间戳。

评论


我怀疑您的答案尚未获得批准,因为它解析了ls的输出-请参阅反对这样做的规范论点以及有关不解析ls的问题

–名
2014-12-15 22:32



#10 楼

例如,显示最后10个修改的文件的一种可能方法是以下命令:

ls -lrth | tail -n 10


以上命令的描述:

ls - list


参数:

l - long
r - reverse
t - sort by time
h - human readable


,然后将其通过管道传输到tail命令,该命令仅显示由n参数(行数)定义的10条最近的行...