<Linux系统stat指令用法>

 原文:https://www.cnblogs.com/linux-super-meng/p/3812695.html

stat指令:文件/文件系统的详细信息显示(查看文件属性)。

stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下:

-f  不显示文件本身的信息,显示文件所在文件系统的信息

-L  显示符号链接

-t  简洁模式,只显示摘要信息

  事实上,stat命令显示的是文件的I节点信息。Linux文件系统以块为单位存储信息,为了找到某一个文件所在存储空间的位置,用I节点对每个文件进行索引。

  

   所谓的I节点,是文件系统管理的一个数据结构,是一个64字节长的表,包含了描述文件所必要的全部信息,其中包含了文件的大小,类型,存取权限,文件的所有者==

查询rc.d文件的信息

[root@redhat rc.d]# stat rc0.d/  //可以清楚的分析文件或目录的信息
  File: `rc0.d/'
  Size: 4096       Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d Inode: 1309217     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-06-26 21:02:26.776082938 +0800
Modify: 2014-06-12 15:16:57.848087079 +0800
Change: 2014-06-12 15:16:57.848087079 +0800

[root@redhat rc0.d]# du -sh   //这个目录下的所有文件共4K和上面大小差不多
4.0K .

查询ec.d文件所在文件系统的信息:

[root@redhat rc.d]# stat -f rc0.d/  //这个显示的跟当前系统的文件系统信息一样,因为rc.0就在当前系统的文件系统
  File: "rc0.d/"
    ID: 303116b72802c784 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 7558388    Free: 5545748    Available: 5161800
Inodes: Total: 1921360    Free: 1850717

也可以查看硬盘的信息

[root@redhat rc.d]# stat /dev/sda
  File: `/dev/sda'
  Size: 0          Blocks: 0          IO Block: 4096   block special file
Device: 5h/5d Inode: 6308        Links: 1     Device type: 8,0
Access: (0660/brw-rw----)  Uid: (    0/    root)   Gid: (    6/    disk)
Access: 2014-06-27 20:57:07.213940088 +0800
Modify: 2014-06-27 20:57:05.037938949 +0800
Change: 2014-06-27 20:57:05.037938949 +0800

sda硬盘文件系统的信息

[root@redhat rc.d]# stat -f /dev/sda
  File: "/dev/sda"
    ID: 0        Namelen: 255     Type: tmpfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 61793      Free: 61734      Available: 61734
Inodes: Total: 61793      Free: 61080

----------------------------------------------------------------------------------------

取得/etiantian文件的权限对应的数字(考试题答案系列)

原文:http://blog.51cto.com/oldboy/791638

说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你可以点下面地址查看全部的内容信息。
http://oldboy.blog.51cto.com/2561410/791245
答题的思维比做题本身更重要,就是老男孩如何想到的解决问题的思路。

1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r-- 为644,要求使用命令取得644这样的数字。

解答:

实践过程:

[root@oldboy ~]# touch /ett #==>创建测试文件/ett

[root@oldboy ~]# stat /ett #==>通过stat命令可以看到文件的数字权限

File: `/ett'

Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: 803h/2051d      Inode: 98211       Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2012-02-20 08:04:24.000000000 +0800

Modify: 2012-02-20 08:04:24.000000000 +0800

Change: 2012-02-20 08:04:24.000000000 +0800

那么我们如何获得这一文件的数字权限呢?

法一过程:(stat、sed、cut)

[root@oldboy ~]# stat /ett|sed -n '4p'#==>首先通过管道把stat结果传给sed处理取出需要的行。

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

[root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1 #==>对上面的结果以/线为分割符,然后取第1个字段。这里以斜线分割不是唯一的方法,大家注意下。

Access: (0644

[root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1|cut -d "(" -f2 #==>这就是法一答案

#==>对上面的结果以(号为分割符,然后取第2个字段,就会得出我们需要的结果。

0644

特别说明:

1)上题中的sed -n '4p'是取结果的第二行的意思,也可以用笨办法head -4|tail -1替代。例:

[root@oldboy ~]# stat /ett|head -4|tail -1|cut -d "/" -f1|cut -d "(" -f2 #==>法二答案

0644

2)上题中的cut -d "/" -f1|cut -d "(" -f2部分,也可以用awk,sed等命令替代。如例:

[root@oldboy ~]# stat /ett|head -4|tail -1|awk -F "/" '{print $1}'|awk -F "(" '{print $2}'

0644 #==>法三答案,awk法如果大家有不懂的,也不用纠结,本文后面问题里会细讲。

提示::此题考察了大家对stat ,cut,awk,head,tail,sed等命令组合用法,有对这些命令还不熟悉的同学,可以分步分批总结下。

注意:敲字符时成对出现的’’,{}内容,最好连续敲完,以免后续落下。

法二过程:(stat)

当然还有更简单的方法:

[root@oldboy ~]# stat -c %a /ett

644

注意:如何想到法二的思考过程,比答题更重要。当命令结果包含我们需要的内容的时候,我们要想到是否有具体的参数能够一步达到我们需要的结果。

特别说明:

有关stat -c的用法可以通过stat --help和man stat,info stat,这是所有命令的三大帮助杀手锏,必须要掌握了。

[root@oldboy ~]# stat --help

Usage: stat [OPTION] FILE... #==>这是语法格式

Display file or file system status.

...省略部分...

-f, --file-system     display file system status instead of file status

-c  --format=FORMAT   use the specified FORMAT instead of the default;

output a newline after each use of FORMAT

...省略部分...

#==>这是可用的参数,如-c。

The valid format sequences for files (without --file-system):

#==>这里是对于文件适用的格式,既-c后接的格式。

 %a   Access rights in octal #==>以8进制形式显示,即为本文的答案

%A   Access rights in human readable form #==>拓展以人类可读的形式显示权限

%b   Number of blocks allocated (see %B)

%B   The size in bytes of each block reported by %b

%d   Device number in decimal

%D   Device number in hex

%f   Raw mode in hex

%F   File type

%g   Group ID of owner

%G   Group name of owner

%h   Number of hard links

%i   Inode number

%n   File name

%N   Quoted file name with dereference if symbolic link

%o   I/O block size

%s   Total size, in bytes

...省略部分...

本题的拓展部分

[root@oldboy ~]# ls -li /ett

98211 -rw-r--r-- 1 root root 0 Feb 20 08:04 /ett

[root@oldboy ~]# stat -c %a /ett

644

[root@oldboy ~]# stat -c %A /ett #==>获取字符权限

-rw-r--r--

[root@oldboy ~]# stat -c %B /ett

512

[root@oldboy ~]# stat -c %b /ett

0

[root@oldboy ~]# stat -c %i /ett #==>inode信息

98211

[root@oldboy ~]# stat -c %n /ett

/ett

[root@oldboy ~]# stat -c %o /ett #==>block size

4096

(转)Linux系统stat指令用法的更多相关文章

  1. Linux系统stat指令用法

    stat指令:文件/文件系统的详细信息显示. stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: stat命令-->用来显示文件的详细信息,包括inode, atime, ...

  2. <Linux系统isosize指令用法>

    isosize命令:iso9660文件系统大小显示 isosize命令用于显示iso9660文件系统的大小,还文件可以使普通文件,也可以是块设备,如/dev/sr0或者/dev/sda.如果没有相关选 ...

  3. 100个linux系统常用指令

    1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"."和".."-l 列出文件 ...

  4. <Linux系统minfo命令用法>

    minfo命令——ms-dos文件系统的各项参数的显示 minfo这个指令主要用于显示MS-DOS文件系统的各项参数,包括扇区数.磁头数.柱面数等. 参数主要有以下几个: -v 显示详细的参数 dri ...

  5. linux—find常见指令用法示例

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强da的功能,所以它的选项也很多,其中大部分选项都值得我们花 ...

  6. Linux系统操作指令汇总

    1.系统配置 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIO ...

  7. <Linux系统uname命令用法>

    uname命令:操作系统信息的显示 uname 命令主要用于显示操作系统的信息,包括版本.平台的信息. 它的参数主要有以下: -a 显示全部信息 -s 显示内核名称 -n 显示主机名 -r 显示当前系 ...

  8. Linux系统常用指令

    建立一个文件或文件夹的软链接: ln -s 原名 软链接名 软链接就类似Windows下的"快捷方式",访问它其实访问的是它指向的内容. git仓库操作 1.通常远程操作的第一步, ...

  9. linux 系统 tar 的用法详解

    [root@localhost xu]# tar --help 用法: tar [选项...] [FILE]... GNU ‘tar’ 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还 ...

随机推荐

  1. Starting MySQL....The server quit without updating PID file错误解决办法

    出现错误:Starting MySQL....The server quit without updating PID file 检查错误文件: /var/lib/mysql/xxxx.err,根据其 ...

  2. java web项目创建

    https://www.cnblogs.com/kangjianwei101/p/5621738.html

  3. php-fpm包的安装与配置

    实验环境:CentOS7 [root@~ localhost]#yum -y install php-fpm php-fpm包:用于将php运行于fpm模式 #在安装php-fpm时,一般同时安装如下 ...

  4. 设置win7资源管理器启动时的默认位置-windows-操作系统-网页教学网

    设置win7资源管理器启动时的默认位置-windows-操作系统-网页教学网 如何设置win7资源管理器启动时的默认位置?我不太习惯 Win 7 的资源管理器默认总是打开库,我还是喜欢资源管理器打开树 ...

  5. CentOS7下二进制文件安装MySQL5.6

    1.查看已装包 [root@host2 ~]# rpm -qa | grep mysql mysql-libs-5.1.71-1.el6.x86_64 [root@host2 ~]# [root@ho ...

  6. 字符串(String)

    字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法. 常见功能: obj.length     ...

  7. 关于android中两种service的编写简单总结

    1.startservice (两种方法,继承service类或者继承intentservice 类) 继承service类,在onstartcommend重载方法中实现业务逻辑的处理,如果耗时过长最 ...

  8. VMware 虚拟机 Ubuntu 系统没有IP地址 解决:UP BROADCAST MULTICAST 问题

    VMware 虚拟机 ifconfig没有net_addr地址的解决方法 使用时间长的虚拟机,会莫名其妙的连接不上网 在终端中,使用ifconfig命令查看Ubuntu系统的IP地址,发现没有分配IP ...

  9. 关于C/C++中的“auto”关键字

    C/C++ 98标准 C++03标准 早在C++98标准中就存在了auto关键字,那时的auto用于声明变量为自动变量,自动变量意为拥有自动的生命期.此用法是多余的,因为即使定义变量时不加" ...

  10. 3.Windows应急响应:蠕虫病毒

    0x00 前言 蠕虫病毒是一种十分古老的计算机病毒,它是一种自包含的程序(或是一套程序),通常通过网络途径传播, 每入侵到一台新的计算机,它就在这台计算机上复制自己,并自动执行它自身的程序.常见的蠕虫 ...