bash - 为什么猫的大小比实际文件小?

标签 bash cat

我想知道这里发生了什么,实际上我是在正确地连接文件还是丢失了一些文件。所以,我想将一个文件夹(称为de)中的所有文件(所有txt)都cat到一个txt文件中。这是我的两种方式:

cat de/* >> de_merged_all
du -h de_merged_all
353M    de_merged_all

现在,如果我检查文件夹 de ​​的大小,我会得到:

 du -h de
 383M   de

那么,为什么这些数字不匹配?

最佳答案

du 测量磁盘使用情况。由于每个文件都被您的文件系统舍入到一个更大的 block ,因此单个小文件比单个组合文件占用更多存储空间。

例如:

$ echo >a
$ ls -l a
-rw-r--r-- 1 user group 1 May 23 18:33 a
joe@seashell:/tmp$ du -h a
4.0K    a

一个单字节文件占用 4KiB 磁盘空间。

关于bash - 为什么猫的大小比实际文件小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30410565/

相关文章:

java - 如何在 bash 变量中存储受计数影响的 PostgreSQL 插入查询行

arrays - 狂欢 : Use a variable as an associative array name

Bash tail 命令和多个管道

python-3.x - 如何修复 : ERR Protocol error: expected '$' , 得到 ' '

regex - 需要帮助在扩展的 globbing 中混合标准

regex - 为什么 grep 不从安全实用程序的输出中提取?从 echo 作品中进行比较提取

linux - 在终端中使用 vim 并使用单独的选项卡创建命令来打开 *.h 文件

linux - Bash 在使用 cat 找不到参数时打印帮助消息

linux - 为多个文件分配一个文件头,Linux

c++ - 将文件名从 linux 中的标准输入管道传输到 C++