带领你写一个Linux下的打包软件 Tar
发布时间:2021-10-28 03:24:25 所属栏目:系统 来源:互联网
导读:trace-cmd 是一个易于使用,且特性众多、可用来追踪内核函数的命令。 在 之前的文章 里,我介绍了如何利用 ftrace 来追踪内核函数。通过写入和读出文件来使用 ftrace 会变得很枯燥,所以我对它做了一个封装来运行带有选项的命令,以启用和禁用追踪、设置过滤
trace-cmd 是一个易于使用,且特性众多、可用来追踪内核函数的命令。
在 之前的文章 里,我介绍了如何利用 ftrace 来追踪内核函数。通过写入和读出文件来使用 ftrace 会变得很枯燥,所以我对它做了一个封装来运行带有选项的命令,以启用和禁用追踪、设置过滤器、查看输出、清除输出等等。
trace-cmd 命令是一个可以帮助你做到这一点的工具。在这篇文章中,我使用 trace-cmd 来执行我在 ftrace 文章中所做的相同任务。由于会经常参考那篇文章,建议在阅读这篇文章之前先阅读它。
安装 trace-cmd
本文中所有的命令都运行在 root 用户下。
因为 ftrace 机制被内置于内核中,因此你可以使用下面的命令进行验证它是否启用:
# mount | grep tracefs
none on /sys/kernel/tracing type tracefs (rw,relatime,seclabel)
不过,你需要手动尝试安装 trace-cmd 命令相信你对 linux 的 .tar.gz 有点熟悉,这就是先 tar 打包(.tar 后缀),再对此 tar 文件用 gzip 压缩(.tar.gz)的后缀名。
值得注意的是, tar 不是压缩软件,它只做把一堆文件/文件夹打包到一个文件(tar 文件)里的事情,而文件联系,文件权限,相对的路径等都会给你保存好。
一开始设计是 tar 跟 gzip 只做一件事情,各司其事,后来发现太麻烦了,于是就把压缩功能整合到 tar 里了。
- Create a gzipped archive:
tar czf target.tar.gz file1 file2 file3
最近学习 OS 时写了一个类似 tar 的项目,那么今天就趁热打铁简单说一下如何写一个打包软件,这个软件会将重复的文件内容通过 md5 比较,复用旧的内容。
基本单位 block
block 可以理解为文件系统的最小单位,分别有以下类型:
directory block,文件夹 block,存储文件夹 meta 信息;
file block,文件 block,存储文件 meta 信息;
data block,只用来存文件内容;
Directory block,注意的是 entry 里要有 fileindex 来存储重复文件的 name 的下标。
同时,给 项目一个 root dir。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |