关于Linux文件的那些事情之二
2016-12-06 12:19
183 查看
文件的管理
查看文件类型
如果想知道某个文件的基本数据,可以利用file这个命令来查看,就能简单的判断文件的格式如何了。复制 cp
cp [-adfilprsu] source destination cp [options] source1 source2 source3… directory 参数设置: -a 相当于-pdr的意思 -d 当源文件为连接文件的属性,则复制连接文件属性而非文件本身 -f 若目标文件已经存在且无法开启,则删除后再尝试一次 -i 若目标文件已经存在时,在覆盖前会询问操作的进行 -l 进行硬连接的连接文件创建,而非复制文件本身 -p 连同文件的属性一起复制过去,而非使用默认的属性 -r 递归持续复制,用于目录的复制行为 -s 复制成为符号连接文件 -u 若destination比source旧才更新destination
在默认的条件中,cp的源文件与目的文件中的权限是不同的,目的文件的所有者通常会是命令操作者本身
移除文件或目录 rm
rm [-fir] filename 参数设置: -f 忽略不存在的文件,不会出现警告信息 -i 互动模式,在删除前询问用户是否执行操作 -r 递归删除子目录下的文件
移动文件与目录或者重命名 mv
mv [-fiu] source destination mv [options] source1 source2 source3… directory 参数设置: -f 如果目标文件已经存在,不会询问而直接覆盖 -i 若目标文件已经存在时,就会询问是否覆盖 -u 若目标文件已经存在,且source比较新才会更新
文件内容的查阅
cat:由第一行开始显示文件内容tac:从最后一行开始显示
nl:显示的时候,顺便输出行号
more:一页一页地显示文件内容,只能向后翻页
less:与more相似,但可以向前翻页
head:只看头几行
tail:只看结尾几行
od:以二进制的方式读取文件内容
注:以上指令笔者曾做过总结,这里不再详述
修改文件时间或创建新文件 touch
touch [-acdmt] filename 参数设置: -a 仅修改访问时间 -c 仅修改文件的时间,若该文件不存在则不创建新文件 -d 后面可接欲修改的日期而不用目前的日期,也可以使用--date=”日期或时间” -m 仅修改mtime -t 后面可接欲修改的时间而不用当前的时间,格式为[YYMMDDhhmm]
文件的默认权限和隐藏权限
文件默认权限
用户创建文件默认没有可执行权限,即只有r、w两个选项:-rw-rw-rw-umask指定“目前用户在新建文件或目录时候的权限默认值”,该数字表示的含义是指“该默认值需要减掉的权限”
文件隐藏属性
除了9个文件属性之外,文件还具有一些隐藏属性,这对于系统安全格外重要,可以通过chattr来设置隐藏属性,lsattr来查看隐藏属性。设置文件的隐藏属性
chattr [+-=] [ASacidstu] filename 参数设置: + 增加某一个特殊参数,其他原本存在参数不动 - 删除某一个特殊参数,其他原本存在参数不动 = 仅有后面接的参数 A 当设置了A这个属性,若你有访问此文件或目录时,它的访问时间atime将不会被修改,可避免I/O较慢的机器过渡访问磁盘,对速度较慢的计算机有帮助 S 一般文件是异步写入磁盘的,如果加上S这个属性时,当你进行任何文件的修改,该改动都会同步写入磁盘中 a 当设置a之后,这个文件只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性 c 这个属性设置之后,将会自动将此文件压缩,在读取的时候将会自动解压缩,但是在存储的时候,将会先进性压缩后再存储 d 当dump程序被执行的时候,设置d属性可将该文件或目录不被dump备份 i 设置这个属性可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据。对于系统安全性有相当大的帮助,只有root能设置此属性 s 当文件设置了s属性时,如果这个文件被删除,它将会完全从这个硬盘空间中删除 u 与s相反,当使用u来配置文件时,如果该文件被删除了,则数据内容其实还存在硬盘中,可以用来找回该文件
显示文件隐藏属性
lsattr [-adR] filename 参数设置: -a 将隐藏文件的属性也显示出来 -d 如果filename是目录,仅列出目录本身的属性而不是目录内的文件名 -R 连同子目录的数据也一并列出来
文件的特殊权限
有时候我们查看文件权限的时候,一般都是r、w、x三个权限的组合,但是有时候会在其中出现一些别的字符,这些就代表了文件的特殊权限。SetUID
当s这个标志出现在文件所有者的x权限上时,称为Set UID,简称SUID的特殊权限,其限制与功能为:SUID权限仅对二进制程序(binary program)有效,不能用在shell script上面;
执行者对于该程序需要具有x的可执行权限;
本权限仅在执行该程序的过程中有效;
执行者将具有该程序所有者的权限。
Set GID
当s标志出现在用户组x权限上时成为Set GID,简称SGID,与SUID不同,SGID可以针对文件或目录设置,现在仅对文件设置,有如下功能:SGID对二进制程序有用;
程序执行者对于改程序来说,需具备x的权限;
执行者在执行的过程中将会获得该程序用户组的支持。
权限设置
与r、w、x权限相同,SUID和SGID也能用数字形式来表达,SUID为4,SGID为2,使用chmod指令设置这两个权限,在原来的三个数字前再加上一个数字就能设置文件的特殊权限了。有时候我们会注意到设置了特殊权限之后,出现了大写的S字符,这里表示的是原来的文件不具有x的权限,所以设置了特殊权限之后,我们没有实际获得该特殊权限,大写表示为“空的”。
文件名的查找
Linux下可以使用whereis、locate和find来进行文件的查找。寻找特定文件whereis
whereis [-bmsu] filename 参数设置: -b 只找二进制格式的文件 -m 只找说明文件manual路径下的文件 -s 只找source源文件 -u 查找不在上述三个选项当中的其他特殊文件
locate
locate [-ir] filename 参数设置: -i 忽略大小写的差异 -r 后面可接正则表达式的显示方式
find
find [PATH] [option] [action] 参数设置: [-atime –ctime –mtime] n n为数字,意义为在n天之前的“一天以内”被更改过的文件 +n 列出在n天之前(不含n天本身)被更改过的文件名 -n 列出在n天之内(含n天本身)被修改过的文件名 -newer file file为一个存在的文件,列出比file还要新的文件名 -uid n 列出UID为n的文件名 -gid n 列出GID为n的文件名 -user name 列出文件所有者为name的文件名 -group name 列出用户组为name的文件名 -noser 寻找文件的所有者不存在/etc/passwd中文件 -nogroup 寻找文件用户组不存在/etc/group中的文件 -name filename 查找文件名为filename的文件 -size [+-] SIZE 查找比SIZE还要大或小的文件 -type TYPE 查找文件的类型为TYPE类型的 -perm mode 查找文件权限为mode的文件 -perm –mode 查找文件权限包括mode的文件 -perm +mode 查找文件权限包含任一mode权限的文件
相关文章推荐
- 关于Linux文件的那些事情之一
- 关于linux音频JACK的那些事情……
- Linux中关于重要配置文件
- 关于Linux下.bin格式文件的安装
- 关于linux环境变量文件
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题(三)
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题(二)
- 关于LINUX下JSP文件上传出现中文文件名 引起的问题
- 关于Linux 文件系统中路径的理解
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题
- 关于虚拟机下linux共享Windows文件的解决方案
- 关于Linux和Windows文件路径的解决办法
- 根文件系统,关于linuxrc的困惑
- 关于Linux系统下网卡手写配置文件的介绍
- 在VM上学习嵌入式Linux系统的构建之二--内存文件系统
- 关于登录linux时,/etc/profile、~/.bash_profile等几个文件的执行过程
- 关于linux下的嵌入式文件系统以及flash文件系统选择
- 关于在linux 下查找文件 find
- 关于linux的最大打开进程及最大打开文件数 - linux - 第六空间
- 关于linux下远程挂载文件系统的总结