linux属性查看-ls,lsattr,file,stat,du

相关链接:https://blog.csdn.net/knowledgebao/article/details/84315842


目录

ls:显示目录文件名称

du:显示目录或文件的大小

lsattr:显示文件或目录的属性。

chattr:改变文件或目录的属性。

file:辨识文件类型。

stat:以文字的格式来显示inode的内容。


ls:显示目录文件名称

ls 命令的含义是list显示当前目录中的文件名字。注意不加参数它显示除隐藏文件外的所有文件及目录的名字。

常用命令:

1,ls –a 显示当前目录中的所有文件,包含隐藏文件

2,ls –l 显示文件及其详细信息,就是我们常用的ll命令(ll是ls -l的别名)。

在这里,total 10542992表示当前目录下文件大小总和为10542992K,不包含子目录大小。一共显示7列内容:

  • 第一列:-rw-r--r--. 第一个字符有3种情况:“-”表示普通文件,“d”代表目录,“l”代表连接文件,“b”代表设备文件。后面的9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组、其它用户对文件拥有的权限。每组中“r”、“w”、“x”三个字符分别代表读、写、执行的权限,若没有其中的任何一个权限则用“-”表示。执行的权限有两个字符可选,最常见的一个是“x”代表可执行,另一个是“s”代表套接口文件。9个符号后边的.是ACL类型,(.)点是ACL_T_SELINUX_ONLY, (+)加是ACL_T_YES,空白是没有ACL。ACL 是访问控制列表Access Control List。具体参考:http://www.ibm.com/developerworks/cn/linux/l-acl/。文件或者目录在创建的时候有默认权限,具体与umask有关。具体在/etc/profile下。可参考https://www.cnblogs.com/qzqdy/p/7997511.html
  • 第二列:紧接着的数字“2”代表这个目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)。(如果这只是一个普通文件,那“2”就代表这个文件有两个别名,这个文件被人创建了一个硬链接文件)
  • 第三列:root代表这个文件(目录)的属主(Owner)为用户root
  • 第四列:root代表这个文件(目录)所属的用户组(Group)为组root
  • 第五列:代表文件的大小(字节数),目录的大小总是为4096字节。
  • 第六列:Feb  9  2015代表文件(目录)的修改时间,月 日 年,如果是当天的花,就是月 日 时分。
  • 第七列:文件或目录名称。

3,ls -h 显示文件大小时增加可读性(例:1K 234M 2G)

4,  ls -t 按最后修改时间排序。

5, ls -S按文件大小排序。(大写的S)

6, ls -r排序时按倒序。

7, 列出子目录

  •     ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)
  •     ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)

8, 计算当前目录下的文件数和目录数

  •     ls -l * |grep "^-"|wc -l ---- to count files
  •     ls -l * |grep "^d"|wc -l ----- to count dir

9,其他

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-g 无用。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-n 用数字的 UID,GID 代替名称。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。

--color=no 不显示彩色文件名
--help 在标准输出上显示帮助信息。
--version 在标准输出上输出版本信息并退出。

du:显示目录或文件的大小

du 参数 文件名,文件名可以模糊匹配,默认当前目录

1,du -sch * 显示当前目录下所有子目录及文件大小以及总和。

2,du -ah folder显示目录下所有文件信息,所有层。可以通过--max-depth=1控制层数

3,du与df的区别:

  • du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
  • df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。当文件系统也确定删除了该文件后,这时候du与df就一致了。

4,其它

  • -a或-all 显示目录中所有文件的大小。
  • -b或-bytes 显示目录或文件大小时,以byte为单位。
  • -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -D或--dereference-args 显示指定符号连接的源文件大小。
  • -h或--human-readable 以K,M,G为单位,提高信息的可读性。
  • -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
  • -k或--kilobytes 以1024 bytes为单位。
  • -l或--count-links 重复计算硬件连接的文件。
  • -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  • -m或--megabytes 以1MB为单位。
  • -s或--summarize 仅显示总计。
  • -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  • -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  • -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
  • --exclude=<目录或文件> 略过指定的目录或文件。
  • --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  • --help 显示帮助。
  • --version 显示版本信息。

lsattr:显示文件或目录的属性。

chattr:改变文件或目录的属性。

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

1,不允许操作指定文件:chattr +i /etc/resolv.conf

2,只运行增加文件内容:chattr +a /home/1.log

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

file:辨识文件类型。

通过file指令,我们得以辨识该文件的类型。

  • -b  列出辨识结果时,不显示文件名称。
  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  • -L  直接显示符号连接所指向的文件的类别。
  • -m<魔法数字文件>  指定魔法数字文件。
  • -v  显示版本信息。
  • -z  尝试去解读压缩文件的内容。
  • [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

stat:以文字的格式来显示inode的内容。

  • 第一行:File:文件名称。
  • 第二行:Size:文件大小。Blocks:物理块(Size=Blocks*512物理最小块)。IO Block:逻辑块。regular file:类型
  • 第三行:Devide: 设备名称,Inode:Inode号,Links:硬连接个数
  • 第四行:Access:权限(ls也可查看)。Uid:文件拥有者的User ID。Gid:文件的Group ID
  • 第五行:Context:SELinux,可参考:https://blog.csdn.net/yanjun821126/article/details/80828908
  • 第六行:Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。
  • 第七行:Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。 
  • 第八行:Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
  • 第九行:Birth:待定

参考资料:

1,https://www.cnblogs.com/aijianshi/p/5756346.html

2,https://www.ibm.com/developerworks/cn/linux/l-acl/

3,http://www.runoob.com/linux/linux-comm-du.html

4,https://www.cnblogs.com/kzloser/articles/2673790.html

5, http://c.biancheng.net/linux/file.html

6,https://www.cnblogs.com/klb561/p/9241228.html


有任何问题,请联系:[email protected]

猜你喜欢

转载自blog.csdn.net/knowledgebao/article/details/85247876
今日推荐