Linux命令备忘实例(13)——文件操作
来源:互联网 发布:w7电脑网络出现感叹号 编辑:程序博客网 时间:2024/06/05 14:09
1.生成任意大小文件——dd
如果为了测试程序,需要生成包含随机数据的文件时,需要使用指定大小的文件作为输入,或者时分割文件等。创建特定大小的文件最简单的方法就是dd命令。
dd命令克隆给定的输入内容,然后输出一份副本到输出。stdin、设备文件、普通文件都可以作为dd的输入;stdout、设备文件、普通文件也都可以作为dd的输出。
user@ubuntu:~$ dd if=/dev/zero of=junk.data bs=1M count=1
上述命令会创建一个1M大小的junk.data文件。
- if:输入文件(input file)
- of:输出文件(output file)
- bs:以字节为单位的大小(block size)
- count:需要复制的块数,最终文件大小为 bs*count
快大小可以使用通用的单位来指定,c(1Byte)、w(2Bytes)、b(512Bytes)、k、M、G等。不指定if参数时默认从stdin接收输入。不指定of默认会输出到stdout。另外可以使用dd命令传输大量数据来测试内存的操作速度。
2.文本文件交差集——comm
comm命令用于比较两个文本文件。交集:输出共有的行,差集:输出包含在A文件中而不在其他文件中的行,求集:包含在指定文件中且不相同的行。
user@ubuntu:~$ comm A Bcolumn1 column2 column3...
输出的第一列包含只出现在A中的行,第二列包含只在B出现的行,第三列包含A和B中相同的行,各列以tab键分割。
只有三个选项进行控制,-1用来删除第一列,-2删除第二列,-3删除第三列。
3.批量生产空白文件——touch
touch可以用来生成空白文件,如果文件存在,就会修改文件的时间戳。
for name in (1...100).txtdo touch ${name}done
4.列举文件信息——file
file命令用来输出文件的类型信息,可以输出文件的基本信息。linux中的文件类型信息不是由扩展名决定的,而是由文件头决定的。file可以方便的查看:
user@ubuntu:~$ file testtest: ASCII textuser@ubuntu:~$ file /usr/bin/bc/usr/bin/bc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x16db821a3043f96564c984920984be43465ddfeb, stripped
使用find命令可以配合得到制定目录下的文件统计信息:
#!/bin/bashif [ $# -ne 1 ];then echo $0 basepath;fipath=$1declare -A statArrwhile read line;do ftype=`file -b "$line"` let statArr["$ftype"]++;done << (find $path -type f -print)echo ============ File types and count ===============for ftype in "${!statArr[@]}";do echo $ftype : ${statArr["$ftype"]}done
5文件差异——diff
对于一个文件有多个版本时,如果需要查看各个版本都有哪些变化,那么使用diff命令可以生成差异文件。
$ diff -u ver1.txt ver2.txt > ver.patch
上述命令将diff生成的不同点保存到ver.patch文件中,当使用ver1.txt时就可以得到ver2.txt,使用ver2.txt时就会得到ver1.txt。
dff能以递归形式作用于目录。会对目录中所有内容生成差异输出:
-N:将所有缺失文件视为空白文静
-a:将所有文件视为文本文件
-u:生成一体化输出
-r:遍历目录下的所有文件
$ patch -p1 ver1.txt < ver.patchpatching file ver1.txt
上述命令使得ver1.txt文件与ver2.txt内容完全相同。如果再次运行上述命令,就会恢复ver1.txt文件到之前的版本。
- Linux命令备忘实例(13)——文件操作
- Linux命令备忘实例(12)——文件管理
- Linux命令备忘实例(7)——双向重定向与字符操作
- Linux命令备忘实例(8)——文件校验、分割与临时文件
- Linux命令备忘实例(1)——终端输出
- Linux命令备忘实例(2)——变量
- Linux命令备忘实例(3)——数学运算
- Linux命令备忘实例(4)——获取内容
- Linux命令备忘实例(10)——目录管理
- Linux命令备忘实例(11)——首尾获取
- Linux命令备忘实例(14)——sed
- Linux命令备忘实例(17)——cURL
- linux常用文件操作命令备忘
- Linux学习备忘004——文件与目录操作命令
- Linux命令备忘实例(5)——切取命令
- Linux命令备忘实例(6)——排序和基本统计命令
- Linux命令备忘实例——系列说明
- Linux命令备忘实例(15)——awk(1/2)
- the file opeartion in python(一)
- 究竟什么是中间件
- test
- hdoj4643GSM【计算几何+二分思想】
- 国内 程序员的十个等级 你属于哪个等级
- Linux命令备忘实例(13)——文件操作
- 国外 程序员的十个等级,看看你是那个等级?
- RST复位报文段
- 【我的故事】写在一万(怀带着谴责激励自己)
- ODL openflowjava和openflowplugin的启动流程,代码详解。
- freopen后重新控制台读入
- JAVA基础学习(十四)--集合一List和HashSet
- 进程上下文和中断上下文、原子上下文的区别
- 掌握JS中的“this” (一)