Linux文件处理命令(下)
文件处理命令
1.touch:创建空文件
touch [文件名]
touch rainy:创建文件rainy
touch也可以同时创建多个文件,如:
touch hello world:表示同时创建空文件hello和world
也可以创建带空格的文件,在创建时给文件加上引号即可,touch "hello world"
但不建议这样创建文件,在后期对文件进行操作的时候都要给文件加上引号,才能进行操作,会大大的增加工作量。
2.cat :显示文件内容
cat [文件名]
-n 显示行号
cat -n [文件名]
cat一般用来查看内容较短的文件,较长的文件也可以使用cat来查看,但当执行完屏幕只显示最后一页的内容。
3.tac:显示文件内容(反向显示)
tac [文件名]
tac与cat一样,都是用来查看文件内容的,但tac是倒置的查看,即第一行变为最后一行,最后一行变为第一行。
-n 参数在这里不生效
4.more:分页显示文件内容
more [文件名]
空格或f 翻页,一页一页的往下翻
enter 换行,一行一行的往下翻
q/Q 退出
若我们刚好错过我们查找的内容,怎么往回翻页儿呢?
more对文件进行操,只能向下翻页,向下一行一行的查看,那我们要往上翻页,该怎么做呢?
5.less:分页显示文件内容
less [文件名]
less hello.txt :分页查看hello.txt
注:文件开始方向为上,末尾方向为下
空格或f /pageup 翻页,一页一页的往下翻
enter/向下箭头 换行,一行一行的往下翻
向上箭头 换行,一行一行的往上查看
搜索 /关键词
PgUp 一页一页地往回上
q/Q 退出
处于less状态下,适合more查看的都适合less.less也可以使用空格,f键来翻页,也可以使用enter键,向下箭头一行一行的向下查看,也可以使用向上箭头向上一行一行的查看等,还可以输入关键词对文件内容进行搜索。
6.head:显示文件前几行
head [文件名]
-n指定函数
不写参数默认显示文件前10行数据
7.tail:显示文件后面几行
tail [文件名]
-n 指定行数
-f 动态显示文件末尾内容
tail -f 动态显示文件末尾内容,则文件末尾的数据会时刻发生变化,因此可使用tail -f常用来查看正在改变的日志文件。
链接命令
ln:生成链接文件
ln -s [源文件] [目标文件]
-s 创建软连接
软链接:
ln -s beauty beautifully: 创建文件beauty的软连接beautiful
软连接的特征:类似Windows快捷方式
1. lrwxrwxrwx 所有软连接前都有l,且用户权限,所属组权限,其他用户权限均为rwx
2.文件大小:只是符号链接,因此文件较小
3.生成的软连接箭头指向原文件
硬链接:
给文件rainy生成硬链接melancholy
ln rainy melancholy
硬连接的特征:
1.拷贝cp -p +同步更新
从生成硬链接,可以看出,硬链接的文件类型,权限,文件大小,操作时间都与原文件一样,这相当于时保持文件属性的复制。同步更新如下所示:
当我们在文件rainy写入数据,还是在文件melancholy写入数据,最后连个文件的数据都会同时更新。这是因为两个文件对应的 i 节点是一样的,指向的都是同一硬盘的资源,所以数据会同时更新。
2.通过i节点识别(即上一节提到的文件id):
原文件和创建的硬链接文件的节点是相同的。一个文件一定有一个 i 节点,但一个 i 节点不一定只对应一个文件。
3.硬链接不能跨分区:
可以分区建立软连接,而不能分区建立硬链接。
4.不能针对目录使用:
可以对目录建立软连接,但是不可以对目录建立硬链接。
删除了文件的软连接,相当于删除了文件的快捷方式,两者对应的指向关系也会消失
软连接和硬连接的区别总结:
1.原文件生成软连接后,软链接会生成一个箭头指向原文件,而硬链接没有指向的这种关系。melancholy是rainy的硬链接,struggler是struggle的软链接。
2.原文件生成软链接后,其文件类型变为软链接,用 l 标识,文件权限均为rwx,而硬链接相当于是保持原文件属性的复制,其权限,大小,用户,所属组,最后一次更改的时间都是一样的。
3.软链接文件也可以实现同时更新,但没有实现cp -p,而硬链接文件都实现了。
4.可以跨分区创建软链接,而硬链接不可以
5.可以对目录,文件创建软连接,而不可以给目录创建硬链接,只可以给文件创建硬链接。
6.原文件和硬链接的 i 节点一样,但原文件与软连接的节点不一样。
7.把原文件删除,查看软链接文件,显示找不到文件;而硬链接可以。
8.硬链接类似于拷贝,而软链接类似于创建快捷方式。
提出问题:
为什么硬链接可以实现数据同步,硬连接在实际工作中的应用?
Linux的每一个设备都是以文件的方式进行读取的,i 节点记录了该文件的存储位置,以及该文件所有的必须信息,当一个文件更改后其他文件就会同同时更新。使用硬链接,可以节省磁盘空间,因为原文件和硬链接文件的 i 节点都是一样的,因此一个文件在多个目录下重复出现,但只占用一份文件的空间。
针对一块资源来说,如果我们想要给不同的用户分配不同的权限,使用硬链接就可以实现该功能,当我们给原文件建立硬链接后,可以使用chmod命令对链接文件的权限进行修改,从而实现给不同的用户分配不同的权限。
i 节点相同,即使对应不同的文件,但指向的都是同一硬盘的资源。