(转)Linux系统stat指令用法
<Linux系统stat指令用法>
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指令用法的更多相关文章
- Linux系统stat指令用法
stat指令:文件/文件系统的详细信息显示. stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: stat命令-->用来显示文件的详细信息,包括inode, atime, ...
- <Linux系统isosize指令用法>
isosize命令:iso9660文件系统大小显示 isosize命令用于显示iso9660文件系统的大小,还文件可以使普通文件,也可以是块设备,如/dev/sr0或者/dev/sda.如果没有相关选 ...
- 100个linux系统常用指令
1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"."和".."-l 列出文件 ...
- <Linux系统minfo命令用法>
minfo命令——ms-dos文件系统的各项参数的显示 minfo这个指令主要用于显示MS-DOS文件系统的各项参数,包括扇区数.磁头数.柱面数等. 参数主要有以下几个: -v 显示详细的参数 dri ...
- linux—find常见指令用法示例
Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强da的功能,所以它的选项也很多,其中大部分选项都值得我们花 ...
- Linux系统操作指令汇总
1.系统配置 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIO ...
- <Linux系统uname命令用法>
uname命令:操作系统信息的显示 uname 命令主要用于显示操作系统的信息,包括版本.平台的信息. 它的参数主要有以下: -a 显示全部信息 -s 显示内核名称 -n 显示主机名 -r 显示当前系 ...
- Linux系统常用指令
建立一个文件或文件夹的软链接: ln -s 原名 软链接名 软链接就类似Windows下的"快捷方式",访问它其实访问的是它指向的内容. git仓库操作 1.通常远程操作的第一步, ...
- linux 系统 tar 的用法详解
[root@localhost xu]# tar --help 用法: tar [选项...] [FILE]... GNU ‘tar’ 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还 ...
随机推荐
- HDOJ1114(完全背包)
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const ...
- jQuery对象和DOM对象的互换
Dom 对象:指的是普通的 JavaScript 对象 jQuery对象:是包装 Dom 对象后产生的对象. 一:JQuery 对象和 Dom 对象 在使用 JQuery 过程中,我们一般(也是绝大多 ...
- win10系统的简单优化
1.关闭自带杀毒软件Windows Defender操作简要:在gpedit.msc 组策略-计算机管理——>管理模板——>windows组件——>windows defender ...
- python 基础 字符串格式化
print "hello %s %s" % ('wd','pc') c风格 print "hello {1} {0}".format("wd" ...
- 菜鸟攻城狮2(JAVA开发环境)
1.JDK下载路径:www.oracle.com/technetwork/java/javase/downloads 2.安装案例:最后一步认证操作 win+R 或者 点击开始--〉运行 输入“cmd ...
- [poj3311]Hie with the Pie(Floyd+状态压缩DP)
题意:tsp问题,经过图中所有的点并回到原点的最短距离. 解题关键:floyd+状态压缩dp,注意floyd时k必须在最外层 转移方程:$dp[S][i] = \min (dp[S \wedge (1 ...
- spring----IOC注解方式以及AOP
技术分析之Spring框架的IOC功能之注解的方式 Spring框架的IOC之注解方式的快速入门 1. 步骤一:导入注解开发所有需要的jar包 * 引入IOC容器必须的6个jar包 * 多引入一个:S ...
- 【机器学习】推荐系统、SVD分解降维
推荐系统: 1.基于内容的实现:KNN等 2.基于协同滤波(CF)实现:SVD → pLSA(从LSA发展而来,由SVD实现).LDA.GDBT SVD算是比较老的方法,后期演进的主题模型主要是pLS ...
- Win7环境下Sublime Text 3下安装NodeJS插件
1.首先下载安装Node.JS,配置好环境变量(安装好Node.JS默认是配置好了环境变量的). 2.Sublime Text 3下安装NodeJS插件. 参考的两篇文章:http://www.cnb ...
- es6实现类的多重继承
1.类的多种继承,将多个类的接口“混入”(mix in)另一个类. function mix(...mixins) { class Mix { // 如果不需要拷贝实例属性下面这段代码可以去掉 // ...