控制 du 排序
Controlling du ordering
简短版本;我如何控制 du
扫描目录的顺序?
注意: 之后的排序是不够的,我需要更改 du
扫描的顺序,而不是结果的顺序。
一些背景知识;我有一个简单的基于 rsync 的备份,在一个目录中有一堆快照,所有快照都由它们创建的 date/time 命名。
所以示例可能如下所示:
2019-08
2019-09
2019-09-20
2019-09-21
2019-09-23-161447
2019-09-23-172658
i.e- 我有小时报(在最后),折叠成日报(中间),然后最终进入月报(顶部),这很好用,因为它们与 ls
的自然排序很好地配合.
然而,问题是当我 运行 du .
时,顺序是不可预测的,或者至少,它不一样(从旧到新)所以结果没有用,因为我喜欢;有时我会在月刊之前得到每天甚至每小时的扫描,而且顺序有时只与我想要的相匹配。
理想情况下,我想要的是 du
始终从最旧到最新评估快照,因为这样 du
将为所有后来的快照提供大小作为大小 difference/delta(因为未更改的文件是硬链接的,它只计算以后快照的更改)。
是否可以强制对 du
扫描目录的顺序进行自然排序?
出于某种原因,我没有想到如果我只是将所有快照作为参数传递,那么 du
仍会忽略其他硬链接,因此在我的情况下可能的答案是类似于:
du -sh /path/to/snapshots/*-*
由于我的父目录不包含其他带有连字符的条目,这将扩展到其中的每个快照,并且似乎以自然排序顺序给出。根据您自己的用例的相似程度,您可能需要调整模式,或以其他方式获取列表。
不过,在我将此答案标记为正确之前,我可以请某人确认一下吗?这是订购快照的可靠方式吗?它似乎给了我一个自然的排序顺序,但我无法找到来源来确认是否总是如此。如果它不可靠,或者即使它可靠,是否有任何 other/more 灵活的替代方案?
简短版本;我如何控制 du
扫描目录的顺序?
注意: 之后的排序是不够的,我需要更改 du
扫描的顺序,而不是结果的顺序。
一些背景知识;我有一个简单的基于 rsync 的备份,在一个目录中有一堆快照,所有快照都由它们创建的 date/time 命名。
所以示例可能如下所示:
2019-08
2019-09
2019-09-20
2019-09-21
2019-09-23-161447
2019-09-23-172658
i.e- 我有小时报(在最后),折叠成日报(中间),然后最终进入月报(顶部),这很好用,因为它们与 ls
的自然排序很好地配合.
然而,问题是当我 运行 du .
时,顺序是不可预测的,或者至少,它不一样(从旧到新)所以结果没有用,因为我喜欢;有时我会在月刊之前得到每天甚至每小时的扫描,而且顺序有时只与我想要的相匹配。
理想情况下,我想要的是 du
始终从最旧到最新评估快照,因为这样 du
将为所有后来的快照提供大小作为大小 difference/delta(因为未更改的文件是硬链接的,它只计算以后快照的更改)。
是否可以强制对 du
扫描目录的顺序进行自然排序?
出于某种原因,我没有想到如果我只是将所有快照作为参数传递,那么 du
仍会忽略其他硬链接,因此在我的情况下可能的答案是类似于:
du -sh /path/to/snapshots/*-*
由于我的父目录不包含其他带有连字符的条目,这将扩展到其中的每个快照,并且似乎以自然排序顺序给出。根据您自己的用例的相似程度,您可能需要调整模式,或以其他方式获取列表。
不过,在我将此答案标记为正确之前,我可以请某人确认一下吗?这是订购快照的可靠方式吗?它似乎给了我一个自然的排序顺序,但我无法找到来源来确认是否总是如此。如果它不可靠,或者即使它可靠,是否有任何 other/more 灵活的替代方案?