在系统中创建文件或目录,是最基本的操作,也是经常遇到的操作。本文仅关注普通文件的创建。
最简单的情况是创建一个空文件。但有时,根据实际情况,我们需要创建多个空文件,创建多个相同内容的文件,有时又可能需要创建一个指定大小的文件,或把一个大文件切割为多个小文件等。
我们分几种情况分别介绍一下。
一、创建空文件
创建空文件的主要命令是touch
1.创建单个空文件
a.touch
touch 文件名
touch demo1
创建后可以查看文件是否存在及文件内容
ls demo*
cat demo1
b.>
我们也可以通过重定向创始一个空文件
>demo2
可以说,这是创建空文件的最简单的方式
c.vim/vi
vim demo3
d.gedit
gedit demo4
e.nano
nano demo5
以上创建文件的方式主要是依据文本编辑器。
创建后直接保存退出,就是空文件;如果录入一定的字符,就不是空文件了。
2.创建多个空文件
a.touch
touch a{1..10}.txt
b.tee
echo --n "" |tee ab{a..h}.sh
二、创建有内容的文件
1.创建单行内容的文件
echo "hello world" > demoa.txt
2.创建多行内容的文件
a.标准输入创建文件
tee demob.txt
录入:
abcde
12345
这是一项测试。
按ctrl+d退出录入
查看文件内容(含三行)
b.cat >
通过查看多个小文件,可以组合成一个大文件。如
a.txt---内容:123456789
b.txt ---内容:abcdefgh
c.txt ---内容:你好!这是合并文件测试。
c.vim
在vim编辑文件中,可以把其中(连续)多行另存为一个新文件
案例:把/etc/passwd中,第3-10行,另存为一个新文件
在打开的vim编辑器,执行命令:
:3,10 w passwd1
d.sed
同样对上述案例进行训练:
sed -n '3,10p' /etc/passwd >passwd2
e.awk
同样对上述案例进行训练:
awk 'NR==3,NR==10p' /etc/passwd >passwd3
可以通过diff或comm命令对三个文件进行比较,可看到是相同的。
三、大文件切割为小文件
命令split作用是把一个大文件按需要设定分为多个小文件
1.按行数分割
根据行拆分:在命令中添加选项 -l,后跟行数
如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度
不加-d参数,默认为英文字母。不加-a参数,默认为2位
如果想看一下生成的小文件,可使用--verbose参数
基本语法:
split -l 行数-d -a2 要分割的文件名 分割后的文件名
案例
大文件
我们创建一个文件number.txt,其内容为1-500的数字,每行一个数字
seq 500 >number.txt
小文件
分割为100行一个文件,共5个小文件,设定选项-d时(指定数字),小文件名可以指定前缀,如a,后面的文件名会自动设为a00,a01,a02,a03,a04
如果不加选项-d时,指定文件名前缀为b,后面自动设定为aa,ab,ac,ad,ae
命令
split -100 -d number.txt a
不加选项-d
2.按字节分割
根据字节拆分:在命令中添加选项 -b,默认不加单位就是字节,也可以带单位比如KB,MB等。
基本语法:
split -b 3 要分割的文件名 -d -a 1 分割后的小文件名前缀
案例
大文件:
/etc/passwd
分割要求:
每个小文件200字节,文件名前缀为c,用字母表示,文件名前缀长度为1
命令
split -b 500 /etc/passwd -a 1 c
最终效果
四、创建指定大小的文件
我们可以由dd命令创建一个指定大小的文件
dd命令
把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。
语法:
dd 〔选项〕
if =输入文件(或设备名称)
of =输出文件(或设备名称)
bs = bytes 同时设置读/写缓冲区的字节数
count = blocks 只拷贝输入的blocks块
案例:创建一个10M大小的文件test_size
dd if=/dev/zero of=./test_size bs=1M count=10
小结
创建文件是最常见的操作。常用命令是touch,其另外的作用是对现有文件修改其三个时间戳。最简单的创建命令是>。通过编辑文件而创建文件的文本编辑器是vim,应多加训练。而通过split可以分割大文件,而通过dd可以创建指定大小的文件(占位置,考察系统读写能力等),而通过truncate可以把大文件删除为指定大小的文件(需要了解此命令的读者可网上查一下)。对文件的操作从创建文件开始,再查看、修改、复制、移动、重命令或删除。对文件的基本操作就是这些,只有熟练掌握基本命令与操作,才能编程、创建服务,搭建平台。