您的位置:首页 > 运维架构 > Shell

【Linux】Shell学习笔记之三——文件和目录管理(修改、查找)

2013-07-20 22:52 836 查看
在上节学了文件和目录的增、删、复制、移动、查看等。这节主要写对文件、目录属性的修改和文件的查找。

先用ls -l 来查看文件的属性



每一行对应每一个文件、目录的属性,共有9个属性。

第一个:类型+所属主,所属组和其它用户对文件的权限,用'-'分开。

第一列中的字符含义(即类型):

'd'是指目录文件;

'-’指普通文件;

'l'指链接文件;

'b'指块设备文件;

'c'指串行端口设备,例如键盘、鼠标;

's' 指套接字文件,用于进程间通信。

后面的9个字符代表权限。

权限分读、写、执行 。‘r’代表读,‘w’代表写, ‘x’代表执行。所以每三个字符rwx(没有权限的用‘-’代替)对应所属主,所属组,其它用户的权限。

第二个:连接占用的结点。若是目录,通常与里面的东西有关。

第三个:所属的主,即用户。

第四个:所属的组。

第五个:文件大小。

第六、七、八个:文件创建或修改的时间。

第九个:文件名。若前面有‘.’代表隐藏文件。

修改所属组:chgrp +组名+文件名

先用groupadd 添加一个组 groupadd testgroup

对test 目录修改所属组:chgrp testgroup test

修改所属主:chown+用户名+文件名

对test 目录修改所属主:chown admin test

-r 只用于目录,更改的目录里的文件和目录属性随着更改,即级联更改。

对它们操作要有足够的权限,所以先获得root 权限比较方便,如图(admin 是另一个已经建好的用户,若没有可用useradd 来添加用户):



修改权限:chmod -R adc 文件名

-R (大写的)是级联更改

abc 代表三个数字,分别对应所属主,所属组,其它用户的权限。

权限的代表值如下:

r:4 w:2 x: 1 -: 0

例如rwx 的和就是7,



如下图可见,test的文件所对应的权限都是rwx的



也可以用u,g,o分别代表主,组,其它用户对权限进行修改。若全部则是a。

可以用加入(+)、减去(-)、设定(=)来修改权,如图:



如果想让文件和目录一创建时就设定好自定义的权限时要怎么做?

用umask 确定了创建文件的缺省模式。



如上图可见,普通用户的缺省值是0002,root的缺省值是0022。

可为什么不是3个数字吗?怎么多了一个。答案是第一是特殊的权限,这里先不管。

其实目录默认的权限是777,文件的权限是666,还需减去umask的值。若是有root 权限,则减去0022 ,目录和文件一创建时的权限是766,644。

若我们想修改默认值可通过修改umask值来实现。

修改文件的特殊属性: chatrr [-RVF] [+-=Aaisu] files

其中+,-,= 分别是添加,删除,设定特殊属性。

属性A(大写):添加这个属性后不能修改文档的atime

属性a(小写):添加这个属性之后只能添加,不能修改和删除(只有root可设置)。

属性i:添加这个属性之后不能添加、修改、删除(只有root可设置)。

属性s: 被删除后无法恢复。

属性u:与s相反,补删除后可恢复。

显示特殊属性:lsattr -aR file

-a: 连隐藏属性一起显示。

-R 级联。

如下图,添加特殊属性后显示,再删除特殊属性:



下面要写的是“文件”。

除了之前有提过的which 查看命令的绝对路径。现在要讲的是whereis

语法: whereis [-sbmu] filename

-s: 只找source 来源文件;

-b:只找binary文件;

-m:只找在说明文件manual路径下的文件;

-u:没有说明档的文件



find:

语法:find 路径 +参数

比如 find test atime/ctime/mtime + n

查找 test中 访问或执行时间/写入、更改inode属性/写入时间 大于n 天的文件

另外是直接查找文件名:find 路径 -name +文件名

如下图,查找当前目录下 名为''yum.sh'的文件



除了通过文件名查找,也可通过文件类型来查找:

find 路径 -type type 。

比如 find ./ -type d,就是查找目录文档。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: