压缩(通过 tar gzip)大小远大于原始文件夹

jan*_*run 4 tar

/var/www使用tar命令(包括-z(gzip))备份了文件夹:

tar -cvzf file.gz /var/www/*
Run Code Online (Sandbox Code Playgroud)

我检查了www. 它大约是 100kb,但是它产生的文件大小tar大约是 185Mb。什么可能导致这种情况?

Rin*_*ind 17

ls -sh 不考虑子目录。

我会du -csh -- *用来计算这个(--防止以“破折号”开头的文件出现问题)。在哪里 ...

   -s, --summarize
      display only a total for each argument
  -h, --human-readable
      print sizes in human readable format (e.g., 1K 234M 2G)
   -c, --total
      produce a grand total
Run Code Online (Sandbox Code Playgroud)

曼杜

如果你有硬链接,虽然它会弄乱总数。


Hen*_*eck 5

您可能错误地认为原始目录的内容有多大。对于目录,ls -l列出目录本身的大小,而不是该目录中包含的文件的大小。例如

drwxr-xr-x 8 www-data www-data 4096 Sep  2 03:12 some-dir
Run Code Online (Sandbox Code Playgroud)

显示目录本身占用 4096 字节。但这只是some-dir文件系统结构中 s 条目的大小。要总结目录内容的大小,您可以使用du(“磁盘使用情况”),例如

du -s some-dir
Run Code Online (Sandbox Code Playgroud)

ls许多其他命令一样,您可以使用h“人类可读”单位的开关:

du -s some-dir
1804    some-dir

du -sh some-dir
1,8M    some-dir
Run Code Online (Sandbox Code Playgroud)