目录大小为零的原因

时间:2015-04-07 06:09:29

标签: linux

在linux机器上对director / misc进行了一些复制操作。它表现不佳。挖掘后才知道/ misc的大小为0。 的日志:

[root@gd911-linux-host1 misc]# ls -lrt
total 0
[root@gd911-linux-host1 misc]#

但是我自己创建了一个目录,只有空的&检查其大小,显示4个字节。 的日志:

[root@gd911-linux-host1 random]# du -sk
4       .
[root@gd911-linux-host1 random]#

请让我知道这是什么原因。

2 个答案:

答案 0 :(得分:2)

两个命令都正常运行。创建目录时,例如:

mkdir -p misc

目录为空。如果使用ls列出目录中的文件,它将按预期进行报告:

$ ls -lrt misc
total 0

因为目录中有0个文件。现在,当您查看du目录本身占用的磁盘时,它会正确地记录表示磁盘上目录的文件大小(inode,链接等)。例如:

$ du -sk misc
4       misc

请放心,两者都在您的系统上正常运行。 ls报告目录中包含的文件数,du报告目录本身在磁盘上占用的实际大小。

答案 1 :(得分:0)

Stricto sensu, a directory不能完全为空(在Linux和POSIX系统上)。 required .(目录本身)和..(父目录)的两个条目。使用ls -als列出某个目录中的所有条目。见ls(1)& stat(1)。如果shell使用*了解globbing*的shell正在跳过以.开头的文件名,请参阅glob(7)

特别是opendir(3)& readdir(3)至少会提供这两个.& ..条目(失败时除​​外)。

因此,目录始终为这两个必填项和其他元数据(即inode)占据一席之地。

由于缺少权限,以前的/misc命令可能尚未填充您的cp。确保其所有者是合适的(cp命令使用的所有者)。查看stat /miscls -ald /misc。然后至少chmod u+rwx /misc(请参阅chmod(1);您可以使用 root chown(1)命令来更改所有权。)