文件处理命令
touch
- 命令名称:touch
- 执行权限:所有用户
- 功能描述:创建空文件
- 语法:touch [文件名]
touch创建文件的时候命名不推荐存在空格,如下面的情况
1touch program files
2这将创建两个文件,program和files。不过,这也说明我们可以用touch同时创建多个文件
3
4如果想要创建带空格的文件,应该这样写
5touch "program files"
6
7不过,在实际操作中,除非必要,否则不推荐起含有空格文件名的文件。
cat
- 命令名称:cat
- 执行权限:所有用户
- 功能描述:显示文件内容
- 语法:cat [文件名]
- -n:显示行号
cat适合查看内容较少的文件,如果文件内容过多推荐使用more命令或less命令
tac
- 命令名称:tac
- 执行权限:所有用户
- 功能描述:显示文件内容(倒过来显示,从最后一行开始)
- 语法:tac [文件名]
more
- 命令名称:more
- 执行权限:所有用户
- 功能描述:分页显示文件内容
- 语法:more [文件名]
- 操作:
- 空格或f:翻页(一页一页显示)
- b:前一页
- enter:换行(一行一行显示)
- q或Q:退出
less
- 命令名称:less
- 执行权限:所有用户
- 功能描述:分页显示文件内容
- 语法:less [文件名]
与more命令一样也是分页显示文件,它可以向上翻页(通过PgUp键),它也可以搜索某个字段在文件中出现的位置,用/你要搜索的字段
来搜索
head
- 命令名称:head
- 执行权限:所有用户
- 功能描述:显示文件前几行内容
- 语法:head [文件名]
- -n:指定行数
默认查询前十行
tail
- 命令名称:tail
- 执行权限:所有用户
- 功能描述:显示文件后几行内容
- 语法:tail [文件名]
- -n:指定行数
- -f:动态显示文件末尾内容
默认查询后十行
-f显示的文件最后几行后并没有返回到命令行,当这个文件发生变化的时候(如新增),这个变化也会动态的显示在屏幕上。
ln
- 命令名称:ln
- 英文原意:link
- 执行权限:所有用户
- 功能描述:生成链接文件
- 语法:ln -s [原文件] [目标文件]
- -s:创建软链接
1root@atomy-virtual-machine:/tmp# ln -s /etc/issue /tmp/issue.soft
2root@atomy-virtual-machine:/tmp# ln /etc/issue /tmp/issue.hard
上面两条命令,第一条是生成issue文件的软链接(软链接要加上-s),第二条是生成文件的硬链接。
硬链接
硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。
硬链接可由命令 link 或 ln 创建,如:
1link oldfile newfile
2ln oldfile newfile
软链接
软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。
软链接主要应用于以下两个方面:一是方便管理,例如可以把一个复杂路径下的文件链接到一个简单路径下方便用户访问;另一方面就是解决文件系统磁盘空间不足的情况。例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。
使用-s选项的ln命令即可创建符号链接,命令如下:
1ln -s old.file soft.link
2ln -s old.dir soft.link.dir
扩展
inode叫做索引节点号,这是Linux文件系统管理文件的方式。在建立文件系统时,会建立一个索引节点表,里面包含一定数量的索引节点。每当建立一个文件时,就会为他分配一个索引节点号,相当于文件的地址。
简单来说,软链接就是原文件的一种快捷方式,它的权限是lrwxrwxrwx,所占用的内存很小;硬链接就除了 文件存放位置不同,几乎和原文件一样。
硬链接和cp的不同(硬链接的特征)
- 相当于拷贝cp -p + 同步更新
- 通过i节点识别
- 不能跨分区
- 不能针对目录使用