Linux命令备忘实例(8)——文件校验、分割与临时文件
来源:互联网 发布:翻译视频的软件 编辑:程序博客网 时间:2024/05/17 04:43
1.md5sum、sha1sum
文件特别是网络传输的文件,出于各种原因,数据可能在传输中丢失bit位从而导致文件损坏。为了保证数据完整和正确,需要使用特定工具进行完整性测试和校验。校验和就是用来从文件中生成校验和密钥,利用这个校验和密钥核实文件。最广泛使用的就是md5sum和sha1sum两种校验和技术。
1.概览
使用时,需要将生成的校验和结果保存到文件中。然后使用-c选项进行校验。默认为文本模式,-b可以更改为二进制模式。
2.特性实例
user@ubuntu:~$ md5sum testfile1,testfile2 | tee -a check54468c4fbe75b5d4ade261ac1f1cde2d testfile1189e725f4587b679740f0f7783745056 testfile2
校验时使用-c选项即可:
user@ubuntu:~$ md5sum -c checktestfile1: OKtestfile2: OK
3.拓展
对有多个文件的目录一样可以使用,需要以递归的方式对目录中所有文件进行遍历。
- 使用相对应的md5deep和sha1deep命令来实现。这个需要事先安装这两个程序
- 使用find进行递归计算
第一种很直接,第二种方式就是用find找出所有文件后使用md5sum计算后追加到检验文件中,最后用-c选项检验。
user@ubuntu:~$ find path -type f -print0 | xargs -0 md5sum >> check.md5user@ubuntu:~$ md5sum -c check.md5
2.split
在某些情况下,需要将文件分割为更小的片段,比如对于长度太长的日志文件进行分割,方便阅读等,对于大小过大的文件进行分割后方便存储和携带等。
1.概览
指定分割方式后进行分割即可。其中,SIZE参数是一个整数,可以指定单位,用来指定每个文件块的大小:K/M/G/T/P/E/Z/Y(以1024为进制的单位),KB/MB/GB/TB/PB/EB/ZB/YB(以1000为进制的单位)。
另一个CHUNK参数是指定输出文件的个数:
2.特性实例
user@ubuntu:~$ split -b 100K /tmp/test/var.111 var-chunk-user@ubuntu:~$ ll /tmp/test-rw-r--r-- 1 user user 100 xxxxx var-chunk-aa-rw-r--r-- 1 user user 100 xxxxx var-chunk-ab-rw-r--r-- 1 user user 40 xxxxx var-chunk-ac
-a length选项可以指定后缀的长度。-d选项可以使得后缀为数字。
user@ubuntu:~$ split -b 100K -d -a 3 /tmp/test/var.111 var-chunk-user@ubuntu:~$ ll /tmp/test-rw-r--r-- 1 user user 100 xxxxx var-chunk-001-rw-r--r-- 1 user user 100 xxxxx var-chunk-002-rw-r--r-- 1 user user 40 xxxxx var-chunk-003
另外可以实用-l选项来按照文件行数来进行分割,这对于代码文件的分割非常有用。
3.tempfile
编写shell脚本时经常会用到临时暂存的文件,在使用结束后删除。这样的文件最适合的位置就是/tmp目录下,这个目录下的内容在系统重启时会被清空。
在基于Debian的发布版中有tempfile这个命令用来生成标准临时数据文件名。
user@ubuntu:~$ tmpfile=$(tempfile); echo $tmpfile/tmp/fileTIUy3r
另外可以追加一个随机数来防止重名现象,使用环境变量$RANDOM(总是返回一个随机数):
user@ubuntu:~$ tmpfile=$(tempfile)'-'$RANDOM; echo $tmpfile/tmp/fileZIL0EY-13008
在没有tempfile命令情况下,可以使用如下方式命名:
user@ubuntu:~$ tmpfile="/tmp/var.$$"; echo $tmpfile/tmp/var.2598
- Linux命令备忘实例(8)——文件校验、分割与临时文件
- Linux命令备忘实例(12)——文件管理
- Linux命令备忘实例(13)——文件操作
- Linux命令备忘实例(7)——双向重定向与字符操作
- Linux命令备忘实例(1)——终端输出
- Linux命令备忘实例(2)——变量
- Linux命令备忘实例(3)——数学运算
- Linux命令备忘实例(4)——获取内容
- Linux命令备忘实例(10)——目录管理
- Linux命令备忘实例(11)——首尾获取
- Linux命令备忘实例(14)——sed
- Linux命令备忘实例(17)——cURL
- linux 命令——文件分割与合并 split+cat
- Linux命令备忘实例(5)——切取命令
- Linux命令备忘实例(6)——排序和基本统计命令
- Linux命令备忘实例——系列说明
- Linux/Centos文件分割与合并命令
- Linux 文件分割与合并命令
- Leet Code Medium 2 add two numbers
- PE格式详细讲解9– 导出表
- 置换元素(替换元素)和非置换元素(不可替换元素)
- POJ 1180 Batch Scheduling
- CSS3:简易的循环弹跳动画
- Linux命令备忘实例(8)——文件校验、分割与临时文件
- C++尽量不要使用#define
- 手机浏览器直接跳转打开微信方法
- 程序员怎样写好技术博客
- 怎样写rspec mailer测试
- 程序员中"5%神话";刘未鹏:为什么你应该写博客
- 欧几里得&扩展
- 欢迎使用CSDN-markdown编辑器
- 操作栏