第二章:CentOS的文件系统

修改文件的特殊属性

chattr,可修改文件的多种特殊属性:

  • a,增加该属性后,只能追加不能删除,非root用户不能设定该属性
  • c,自动压缩该文件,读取时会自动解压;
  • i,增加后,使文件不能被删除、重命名、设定链接接、写入、新增数据

lsattr,该命令用来读取文件或者目录的特殊权限

在linux下搜一个文件

  • which,找命令。
  • locate,针对已生成的全局文件树索引对文件名进行搜索,但使用前需要先安装mlocate且执行updatedb来生成文件树索引;该命令仅支持按文件名进行搜索。
  • find,遍历查找指定目录(不指定就针对整个系统进行查找);该命令支持多种筛选条件(可按与或否的逻辑关系进行串联)进行查找,如:
    • 文件名,通过-name-iname参数传入,支持通配符。
    • 所属用户,通过-user参数传入。
    • 所属组,通过-group参数传入。
    • 文件时间戳的相关属性,通过-atime(Access time)/-ctime(Change time)/-mtime(Modify time)参数传入,其中-mtime参数比较常用。
    • 文件类型,通过-type参数传入。
    • 文件大小,通过-size参数传入。

如何动态显示一个不停增加内容的文件

  • 使用tail -f可实时追踪一个或多个文档的所有更新,这个功能在调试程序时非常好用:
    1. tail -f /var/log/mail.log /var/log/apache/error_log

查看文件/目录占用磁盘大小

du -sh filename,解释:

  • -s,表示只列出目录本身的数据。
  • -h,系统自动调节单位。

压缩和解压缩

gzip 压缩工具

  • linux下压缩工具有多种,但最常用的是gzip,其它的使用起来也差不多。
  • gzip只支持文件的压缩,若要压缩目录,则需要使用下述的tar打包工具。
  • 压缩直接用gzip sourcefile,解压则用gzip -d zipfile
  • 使用 gzip 压缩的文件后缀一般为.gz

tar 打包工具

  • tar 本身是一个打包工具,并不具有压缩功能,但可以配合压缩工具,一次性完成打包和压缩的任务;通常情况下我们也不会只打包不压缩,所以我们直接记住“一次性打包压缩”的参数即可:
    • tar -czvf distfile sourcedir,压缩打包sourcedir到disfile。
    • tar -zxvf sourcefile,解压解包fourcefile到当前目录。
  • 解释一下上面命令用到的参数:
    • -z表示使用 gzip 压缩工具;其实还可使用其它压缩工具(如 bzip2 和 xz),但毕竟最常用的还是 gzip。
    • -c(c for compress)表示压缩打包,-x表示解压解包。
    • -v表示可视化。
    • -f后面跟文件名(即-f filename),表示压缩后的文件名为 filename,或当期需要解压文件 filename。
  • tar 除了可以打包目录,还可以指定多个文件打包到一起:tar -czvf files.tar.gz file1 file2 file3
  • tar 命令支持查看(但不解压)压缩文件的内容,其参数为-t,但需要注意的是必须与-f同用,其用法为:tar -tf file.tar.gz

zip 压缩工具

  • 对比起上述介绍的 gzip 和 tar,zip 的功能更为强大,它可以压缩(解压)文件和目录。
  • 由于 zip 在 windows 系统上比较常用,因此如需与 windows 系统交换文件,可通过 zip 进行压缩,这样两边都可以识别。
  • CentOS 默认不带 zip 命令,需要通过yum install -y zip进行安装。
  • 压缩文件用zip distfile sourcefile,压缩目录则用zip distfile sourcedir
  • 需要注意的是,当压缩目录下还有二级目录甚至更多级目录时,zip 命令仅仅是把二级目录本身压缩而已,如果想要一并压缩二级目录下的文件及更多级目录,则必须加上-r,如zip -r distfile sourcedir
  • 解压文件并不用 zip 命令,而是用unzip命令,如unzip file.zip
  • 除了基本的压缩/解压功能外,zip 还提供更多进阶功能,如:使用密码进行加密;设置压缩级别;添加注释,等等。