在终端中列出 / 大小的最佳方法是什么?

在终端中列出 / 大小的最佳方法是什么?

我想看看总共占用了多少空间/,但我不知道该怎么做。我可以使用ls -hal并添加小计,或者我可以使用fdisk来告诉我该分区的大小,但是有更好的方法吗?

答案1

您是在询问 中包含的文件/目录的总大小/,还是根文件系统的总大小?

如果是前者,请使用df -h /.

如果是后者,您可以使用 来执行此操作du -sh /,这会非常慢,因为它必须枚举每个文件。更好,但可能不准确,因为诸如绑定挂载、在其他文件系统上存储为稀疏文件的文件系统等:总计您的df输出。

答案2

根目录中通常没有文件,因此我假设您想知道根文件系统中使用了多少空间。执行此操作的命令是dfd伊斯克F稀土)。

df -h /

不带任何参数,df提供所有文件系统的使用信息(除了一些特殊的、非磁盘支持的文件系统,这与此无关)。

如果您想知道不构成完整文件系统的目录及其子目录使用了多少空间,请使用du(d伊斯克智者)。

答案3

  • df报告文件系统元数据 - 即文件系统当前能够存储的内容。需要注意的重要一点是,在某些文件系统上,这不一定需要反映可用空间(尽管它是可用空间),因为 fs 可以在它认为这是一个好主意时进行预分配(例如,当您使用 XFS 时,XFS 可能会这样做)开始创建一个大文件 - 它将分配额外的空间以确保文件较少分散,并且在需要将实际数据写入磁盘时不会花费太多时间进行分配)。此类空间被标记为可用,但会有一些延迟。该信息还反映了这样一个事实,即文件系统结构需要(或可能)需要磁盘上的某些空间 - 这可能会对某些文件系统造成奇怪的影响:报告超过 100% 的空间使用情况。

  • du将为您提供文件系统块粒度的真实磁盘使用情况(在大多数系统上,不确定那些可以使用一个块存储多个文件的数据的系统)。由于它必须处理stat()属于顶级目录层次结构的每个文件(该文件du在命令行上给出),因此速度很慢,特别是对于小文件的情况。

  • stat将为您提供有关单个文件(或目录)的信息。

因此,如果您想知道:

  • 文件系统上有多少可用空间(大约),使用df;

  • 文件中实际有多少数据(不一定在单个文件系统上),请使用du- 请注意,它很容易变慢,尤其是在某些网络文件系统上;

  • 根目录记录本身占用多少空间,使用stat /.

相关内容