Linux下的文件相关操作
文件的权限与属性
权限
文件包含三种基本权限rwx,可用chmod来改变文件的权限
属性
文件属性包括文件类型,文件的所有者可用chown修改,文件所属群组可用chgrp修改,和其他人,大小,时间,文件名等属性。
默认权限与隐藏权限
文件的默认权限:umask
比如输入umask
umask
输出为0002;
则对于文件其默认权限就是666-002=664,对于目录默认权限就是777-002=775.
umask也可以直接接数字,以此来改变umask的值
umask 022
此时,文件的默认权限644,目录的默认权限755
文件的隐藏属性
chatter(设置隐藏属性)
chattr [+-=] [隐藏属性] 文件或目录名称
隐藏属性:
A:当存取文件或目录时atime不会被修改,可避免I/O较慢的机器过度的存取磁盘
S:同步写入磁盘
a:只能增加数据,不能修改和删除
c:自动进行压缩和解压缩
i:不能增删改数据。
最常见的就是a与i,且很多权限要root用户才能设置
文件的特殊属性
- SUID:s出现在文件拥有者的x权限上。在程序执行时,执行者暂时获得拥有者的权限。
- SGID:s出现在文件群组的x权限上。在程序执行时,执行者暂时获得群组的权限。
- SBIT(仅对目录有效) 在此目录下建的文件只有自己和root才能删除
设置方法是在普通权限前在加一个数字4为SUID,2为SGID,1为SBIT
chmod 4755 filename
文件与目录管理
PATH环境变量
系统会依照PATH的设置去每个目录下搜寻可执行程序.
用下面的指令打印PATH变量的值。
echo $PATH
文件的基本操作
- ls(查看目录下的文件) 常用参数:-a -l
- cp (复制文件和目录)
- rm(删除文件或目录) 常用参数:-r -f
- mv(移动文件或目录,或重命名文件)
- basename(获取文件名)
- dirname(获取路径)
文件内容查阅
- cat(查看文件所有内容) 常用参数:-n 打印行号
- tac(反向查看文件内容)不常用
- more(可翻页查看) 空格:翻一页,Enter:翻一行,/str:搜索字符串,b:往会翻,q:退出more
- less(与more功能类似,要用pageup和pagedown来翻页 )
- head -n (查看前几行)
- tail -n (查看后几行)
- od 查看二进制文件
修改文件时间或创建新文件:touch
在linux系统下有三个主要的时间:
- mtime(内容数据变更时间):当文件里的内容改变时,此时间改变。
- ctime(状态改变时间)当文件的权限与属性改变是,此时间改变。
- atime(文件内容被取用时间)当文件的内容被取用时,更改此时间
默认情况下,ls显示的是mtime.
touch默认修改的是mtime和atime,加参数-a 则只修改atime。
其他文件指令
- file:查看文件类型
- which:寻找可执行文件,此指令只能在PATH变量里的路径
- whereis:在一些特定的目录中寻找文件参数:
l:接目录,在指定的目录查询
b:只找二进制格式的文件
m:只找说明文档
s:只找源文件
u:不在上述三个项目中的其他特殊文件 - locate:接文件的部分名称即可,最好在locate之前先输一个updatedb指令。
- find:功能强大的文件查找指令
find [PATH] [option] [action]
-
与时间有关的参数:mtine [±]n第n天前后被改动过的文件名,newer file:比file更新的文件名
-
与拥有者和群组有关的参数:uid,gid,user name,group name,nouser,nogroup
3.与文件权限及名称有关的参数:name,size [±],type,perm mode,perm -mode,perm /mpde
其他
大家也可以访问我的个人博客豆浆and油条er、个人公众号搜索:豆浆and油条er