Linux centos7创建文件

在系统中创建文件或目录,是最基本的操作,也是经常遇到的操作。本文仅关注普通文件的创建。

最简单的情况是创建一个空文件。但有时,根据实际情况,我们需要创建多个空文件,创建多个相同内容的文件,有时又可能需要创建一个指定大小的文件,或把一个大文件切割为多个小文件等。

我们分几种情况分别介绍一下。

一、创建空文件

创建空文件的主要命令是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可以把大文件删除为指定大小的文件(需要了解此命令的读者可网上查一下)。对文件的操作从创建文件开始,再查看、修改、复制、移动、重命令或删除。对文件的基本操作就是这些,只有熟练掌握基本命令与操作,才能编程、创建服务,搭建平台。

相关推荐
千澜空6 分钟前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
斯凯利.瑞恩13 分钟前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
。puppy19 分钟前
HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,OSPF(静态路由,环回,缺省,空接口),NAT
运维·服务器
杨荧28 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
颇有几分姿色29 分钟前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
白子寰34 分钟前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
yannan2019031334 分钟前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁44 分钟前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev1 小时前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
王俊山IT1 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习