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


 
【Linux】Shell学习笔记之三——文件和目录管理(修改、查找)
 
这节主要写对文件、目录属性的修改和文件的查找。
 
先用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,就是查找目录文档。

相关内容

    暂无相关文章