如何使用命令行检查文件夹中的空白空间?

如何使用命令行检查文件夹中的空白空间?

我试过了du,但并没有输出文件夹的空白空间。有什么命令可以做到这一点吗?

答案1

文件夹的大小与其内容的总大小一样大;它们没有任何可用空间。

命令df显示为空磁盘空间。

答案2

文件夹大小没有意义。实际上,文件夹/目录在 Linux 中只是一个文件,就像 Linux 中所有东西都是文件的概念一样。

所以文件夹就是文件的文件库。也就是说,它只是一个存放文件的地方,虽然它没有大小,但它的大小与里面的文件的大小有关。

因此,文件夹中不存在所谓的可用空间。

你可以知道目录的大小

du -sh

您还可以了解整个文件系统的可用空间

df -h

答案3

只是为了进一步澄清一下(希望我不会错过任何特殊的文件系统):

  • 文件夹是一个小文件
  • 文件夹会随着更多文件/子文件夹的添加而增大(但不会添加到其子文件夹中),只会直接添加到文件夹中
  • 当直接删除文件夹中的文件或子文件夹时,文件夹(在某些系统上不会)的大小会减小
  • 将文件夹视为电话簿列表
  • 大多数文件系统在文件夹中留下空条目(只是为了不将其余内容上移),因此大多数情况下大小只会增加
  • 文件夹大小不包括任何文件大小(除非该文件夹是一个容器,其中谈论的可用空间可能有意义:达到最大容器大小的大小)
  • 文件夹大小取决于条目数(包括已被清空的条目),上限为数字的倍数
  • 文件夹中不包含任何文件的内容(除了实际上是容器的特殊文件夹,无论是否定义最大大小)

至少对于 FAT12、FAT16、FAT32、exFAT、NTFS、ext、ext2、ext3、ext4 以及可能更多的文件系统来说,文件夹是一个小文件,用于标识其下有哪些文件夹和文件,就像电话簿列表一样,它仅描述其中的内容(注意:仅直接描述它,不描述任何子文件夹内的内容)。

NTTS 有一些额外的东西,但都有其唯一的标识符(一个数字),文件夹只识别这些标识符中哪些是直接位于该文件夹中的,而不是位于其子文件夹中的,等等。

请注意,有些文件系统非常特殊,在这些文件系统上,文件夹可以具有大小(上限),因此讨论文件夹内的可用空间是有意义的。

对于大多数 Linux 用户来说,将此类文件夹视为具有最大大小的容器,其概念类似于 VirtualBOX 等的 VDI 文件。它们可以增长到有限的大小。一些特殊文件系统使用该文件夹概念,而其他文件系统(如 Pismo Private Folders)则没有最大大小限制。

对于大多数 Windows 用户来说,应该明白,将这样的文件夹视为一个稀疏的大文件,用某些第三方工具将其视为一个文件夹。

换句话说,文件系统上有三种常见的定义明确的类型(包括一些不太常见的特殊文件系统):

  1. 文件(保存信息或其他文件的链接)
  2. 普通文件夹,它们实际上是一个小文件(保存其内部第一级内容的列表)
  3. 特殊文件夹,它们可以被看作一个巨大的文件,有或没有上限(保存其中的所有内容,所有内容的列表和内容,包括子文件夹等);并不是所有的文件系统都允许它们,大多数使用定义文件的技巧,然后将其挂载为文件夹(如 .zip、.rar、.7z 挂载实用程序等),但少数文件系统允许它们。

如果您想看到一些非常奇怪的事情,请尝试这个(在 NTFS 上):

  1. 在根目录创建一个文件夹,例如命名为:MyWeirdFolder
  2. 然后在其中创建一个名称很长的子文件夹(超过 200 个字符)
  3. 创建另一个文件夹,但使用简短的名称,例如WillBeRenamed
  4. 将长的移到短的里面
  5. 将短名称重命名为非常长的名称(超过 200 个字符)

您将获得一条由于路径太长而无法访问的路径,只需将这种长名称重命名为较短的名称即可再次访问它。

相关内容