为什么空文件夹里有容量?
我在开发的时候看到公司的老项目后发现了一个奇怪的事情。
奇怪的是,该文件夹的容量为36M,于是我进入该文件夹,但没有任何文件。
我不明白这是什么样的。
于是我创建了一个文件夹,查看空文件夹的默认容量,默认容量为4.0K。
请告诉我为什么文件夹是空文件夹且不存在任何文件却占用36M容量
下面是控制台日志,奇怪的文件夹名称是logani。新创建的文件夹是testDirectory。
vnoc@AI-API01:~/project/src$ du -sh *
4.0K app.js
28K bin
32K config
364K control
32K databases
4.0K deploy.sh
4.0K install.sh
36M logani
27M logs
16K public
84K routes
4.0K scaleup.sh
4.0K script
4.0K start.sh
4.0K stop.sh
24K system
32K test
20K util
vnoc@AI-API01:~/project/src$ ls -la
total 36628
drwxrwxr-x 14 vnoc vnoc 4096 Apr 26 14:27 .
drwxrwxr-x 5 vnoc vnoc 4096 Mar 28 08:07 ..
-rw-rw-r-- 1 vnoc vnoc 1710 Apr 26 14:26 app.js
drwxrwxr-x 3 vnoc vnoc 4096 Mar 11 15:05 bin
drwxrwxr-x 3 vnoc vnoc 4096 Apr 22 09:35 config
drwxrwxr-x 4 vnoc vnoc 4096 Aug 3 2021 control
drwxrwxr-x 3 vnoc vnoc 4096 Nov 18 16:45 databases
-rw-rw-r-- 1 vnoc vnoc 155 Sep 21 2020 deploy.sh
-rw-rw-r-- 1 vnoc vnoc 119 Sep 21 2020 install.sh
drwxrwxr-x 2 vnoc vnoc 37408768 Apr 27 09:32 logani
drwxrwxr-x 4 vnoc vnoc 20480 Apr 26 09:29 logs
drwxrwxr-x 3 vnoc vnoc 4096 Jan 24 16:11 public
drwxrwxr-x 4 vnoc vnoc 4096 Apr 27 07:58 routes
-rwxr-x--- 1 vnoc vnoc 89 Nov 9 2020 scaleup.sh
drwxrwxr-x 2 vnoc vnoc 4096 Jan 14 18:00 script
-rwxr-x--- 1 vnoc vnoc 708 Sep 22 2020 start.sh
-rwxr-x--- 1 vnoc vnoc 217 Nov 9 2020 stop.sh
drwxrwxr-x 2 vnoc vnoc 4096 Apr 26 15:03 system
drwxrwxr-x 2 vnoc vnoc 4096 Mar 10 2021 test
drwxrwxr-x 2 vnoc vnoc 4096 Apr 27 09:55 testDirectory
drwxrwxr-x 2 vnoc vnoc 4096 Apr 25 15:33 util
vnoc@AI-API01:~/project/src$ cd logani
vnoc@AI-API01:~/project/src/logani$ ls -la
total 36536
drwxrwxr-x 2 vnoc vnoc 37408768 Apr 27 09:32 .
drwxrwxr-x 14 vnoc vnoc 4096 Apr 26 14:27 ..
vnoc@AI-API01:~/project/src/logani$ du -sh *
du: cannot access '*': No such file or directory
vnoc@AI-API01:~/project/src/logani$
答案1
目录的大小会扩展以容纳其中的文件数量。但当您删除文件时,它们不会缩小。
所以...
bash-4.2$ mkdir XXX
bash-4.2$ cd XXX
bash-4.2$ ls -ld .
drwxr-xr-x 43 sweh sweh 4096 Apr 26 22:32 .
bash-4.2$ for a in {1..10000}; do touch $a; done
bash-4.2$ ls -ld .
drwxr-xr-x 2 sweh sweh 155648 Apr 26 22:31 .
bash-4.2$ rm *
bash-4.2$ ls -ld .
drwxr-xr-x 2 sweh sweh 155648 Apr 26 22:32 .