目录
常用直接删除硬链接的命令:"unlink hello.hard"
改变文件权限:"chmod [u|g|o|a] [+|-][r|w|x] filename"
文件权限和用户属性
首先举个例子:
一般情况下文件的显示,就是以上的方式,把文件的标志位、硬链接次数、用户名、用户组、大小、创建时间、文件名等信息都显示出来。
下面来看看文件权限标志位:
对于文件权限标志位,第一位是表示普通文件("-"表示)还算目录文件("d"表示);
第二~四位是表示归属用户的权限(其中,"r"表示可读,"w"表示可写,"x"表示可执行);
第五~七位是表示归属用户的权限(其中,"r"表示可读,"w"表示可写,"x"表示可执行);
第八~十一位是表示归属用户的权限(其中,"r"表示可读,"w"表示可写,"x"表示可执行);
权限位数字表示法中,对应的权限位有就填"1",没有就填"0"。
硬链接次数
建立软硬链接:"ln"命令
创建硬链接:("ln src des")
增加一个硬链接,那硬链接次数就增加1。那么到底什么是硬链接呢?从内存的角度看的话,是这样的,数据都是保存在硬盘上的,当建立一个“hello”文件的时候,将从硬盘上分出一部分数据空间给这个文件的内容,使用的时候是通过外部的一个"文件"来调用这部分的文件内容,从而达到操作内存的效果。而这就是硬链接,当增加一个硬链接的时候,就是再拓展一个"文件"来调用这块存储内容的数据空间,同时,硬链接次数加一,表明有几个"文件"可以直接调用这块存储内容的数据空间。在上图所示的过程中,通过新建立硬链接,创建了文件"hello.hard"文件,它和原来的"hello"文件,都可以调用在硬盘中存放"hello"的内容。这俩文件的硬链接次数也就都是2了。
访问通过硬链接建立的文件的时候,其实访问的都是同一块内存空间的内容,如果对其进行修改,那么再通过其他硬链接方式的文件进行访问的话,看到的内容也会发生对应的改变。此处就应该注意与拷贝的区别(这里是改动一个硬链接文件,所有对应的硬链接访问的文件都发生变化了就)
创建软链接:("ln -s src des")
接下来再说软链接,还是这个例子,接着再创建一个软链接:
软链接的创建并不会影响硬链接的计数,软链接就相当于创建了一个快捷方式,这样一对比就很好理解了!
注:创建硬链接的时候,只能建立文件;而创建软链接的时候,既可以建立硬链接,也可以建立软链接。
软硬链接的删除
直接删除原文件的话:
其他的硬链接创建的文件不会受其影响,当然,对应的硬链接次数会减少了就。而且,通过其建立的软链接会受到影响,这就跟创建快捷方式的文件的对应原文件被删除了的效果是一样的!
常用直接删除硬链接的命令:"unlink hello.hard"
当删除最后一个硬链接的文件的时候,会连带把对应的内容也一并给删除了。而且,删除任意一个多个硬链接创建的文件的时候(包括源文件),只要硬链接次数不为0,那所对应的磁盘空间所存的内容,就都不会被清除。
改变文件权限:"chmod [u|g|o|a] [+|-][r|w|x] filename"
- u:代表用户
- g:代表用户组
- o:代表其他用户
- a:代表所有用户
通过这种方式,就将原来的可执行的权限给取消了! 当然,如果想再给加回来就只直接执行"+"操作:
一般情况下,是在写一个shell文件的时候用到的。用chmod给增加一个可执行权限。
用数字的方式改变文件权限
直接输入对应的数字,来修改权限,比如想让文件a的权限设置成"用户可读可写,组可读可写,其他用户可读",经过计算得到的权限位数字表示位:"0664"
这样就直接通过输入数字就修改了文件权限了。
注意:目录需要有可执行权限,才能进入目录
显示用户名称:"whoami"命令
改变用户和改变组:"chown"与"chgrp"命令
- chown 用户:组 文件名|目录
- chgro 组 文件名|目录
这种操作普通用户是改不了的,必须用超级管理员用户才可以(需要用管理员root去修改文件归属)。
通过上例可以知道,"chown"命令既可以改变用户,又可以改变用户组。