Linux中stat命令显示文件的基本使用教程

   用法:stat [选项]... 文件...

  显示文件或文件系统的状态。

  -L, --dereference 跟随链接

  -f, --file-system 显示文件系统状态而非文件状态

  -c --format=格式 使用指定输出格式代替默认值,每用一次指定格式换一新行

  --printf=格式 类似 --format,但是会解释反斜杠转义符,不使用换行作

  输出结尾。如果您仍希望使用换行,可以在格式中

  加入"n"

  -t, --terse 使用简洁格式输出

  --help 显示此帮助信息并退出

  --version 显示版本信息并退出

  有效的文件格式序列(不使用 --file-system):

  %a 八进制权限

  %A 用可读性较好的方式输出权限

  %b 计算已分配块数(参见%B)

  %B 以字节为单位输出%b 所报告的每个块的大小

  %C SELinux 安全环境字符串

  %d 十进制设备编号

  %D 十六进制设备编号

  %f 十六进制原始模式

  %F 文件类型

  %g 文件的属组ID

  %G 文件的属组组名

  %h 硬链接数量

  %i Inode 编号

  %m 挂载点

  %n 文件名

  %N 如果对象是一个符号链接,显示引用到的其它文件名

  %o I/O 块大小

  %s 总计大小,以字节为单位

  %t 十六进制主设备类型

  %T 十六进制子设备类型

  %u 文件的属主ID

  %U 文件的属主用户名

  %w 文件创建时间,若未知则显示"-"

  %W 从UNIX 元年起以秒计的文件创建时间,若未知则显示"-"

  %x 上次访问时间

  %X 从UNIX 元年起以秒计的上次访问时间

  %y 上次修改时间

  %Y 从UNIX 元年起以秒计的上次修改时间

  %z 上次更改时间

  %Z 从UNIX 元年起以秒计的上次更改时间

  有效的文件系统格式序列:

  %a 非超级用户可用的剩余块数

  %b 文件系统的总数据块数

  %c 文件系统中文件节点总数

  %d 文件系统中空闲文件节点数

  %f 文件系统中空闲块数

  %i 十六进制文件系统ID

  %I 允许的文件名最大长度

  %n 文件名

  %s 块大小(用于快速传输)

  %S 基本块大小(用于块计数)

  %t 十六进制类型描述

  %T 可读性较好的类型描述

  注意:您的shell 内含自己的stat 程序版本,它会覆盖这里所提及的相应

  版本。请查阅您的shell 文档获知它所支持的选项。

  ls 命令及其许多参数提供了一些非常有用的文件信息。另一个不太为人所熟知的命令 stat 提供了一些更为有用的信息。

  下面演示了如何对可执行文件“oracle”(位于 $ORACLE_HOME/bin 目录下)使用此命令。

  代码如下:

  # cd $ORACLE_HOME/bin

  # stat oracle

  File: `oracle'

  Size: 93300148 Blocks:182424 IO Block:4096 Regular File

  Device: 343h/835d Inode: 12009652 Links: 1

  Access: (6751/-rwsr-s--x) Uid:( 500/ oracle) Gid:( 500/ dba)

  Access: 2006-08-04 04:30:52.000000000 -0400

  Modify: 2005-11-02 11:49:47.000000000 -0500

  Change: 2005-11-02 11:55:24.000000000 -0500

  注意使用该命令获得的信息:除了通常的文件大小(也可以使用 ls -l 命令获得)以外,您还获得了该文件占用的块数。通常的 Linux 块大小为 512 字节,因此一个大小为 93,300,148 字节的文件将占用 (93300148/512=) 182226.85 个块。由于块都是完整占用,因此该文件使用了一些整数个数的块。无需猜测就可以获得确切的块数。

  您还可以从以上输出中获得文件所有权的 GID 和 UID,以及权限的八进制表示形式 (6751)。如果要将文件恢复到它现在具有的相同权限,可以使用 chmod 6751 oracle,而不是显式拼写这些权限。

  以上输出最有用的部分是文件访问时间戳信息。该输出显示,该文件被访问的时间是 2006-08-04 04:30:52(显示在“Access:”的旁边),即 2006 年 8 月 4 日上午 4:30:52。这是某个人开始使用数据库的时间。该文件的修改时间是 2005-11-02 11:49:47(显示在“Modify:”的旁边)。最后,“Change:”旁边的时间戳显示文件状态更改的时间。

  stat 命令的修改符 -f 显示了有关文件系统(而非文件)的信息:

  代码如下:

  # stat -f oracle

  File: "oracle"

  ID: 0 Namelen:255 Type:ext2/ext3

  Blocks: Total: 24033242 Free: 15419301 Available: 14198462 Size: 4096

  Inodes: Total: 12222464 Free: 12093976

  另一个选项 -t 显示了完全相同的信息,只不过是在一行中显示的:

  代码如下:

  # stat -t oracle

  oracle 93300148 182424 8de9 500 500 343 12009652 1 0 0 1154682061

  1130950187 1130950524 4096

  这对 shell 脚本非常有用,在 shell 脚本中可以使用一个简单的 cut 命令获得值以进行进一步处理。

时间: 2024-10-25 13:29:05

Linux中stat命令显示文件的基本使用教程的相关文章

Linux中tail命令用法详解_Linux

tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文件写到标准输出.很多人喜欢使用tail –f 来监控日志文件. 一.Linux tail命令格式 Linux tail命令 格式如下所示 tail [OPTION]... [FILE]... Linux tail命令 参数如下所示 -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c

详解Linux中vi命令大全_linux shell

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它.Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻. vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line m

linux中grep命令的使用

  linux中grep命令的使用 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Pr

linux中ln命令的-T参数作用

问题描述 linux中ln命令的-T参数作用 我用man ln命令查看用法,其中对-T参数的解释是 -T, --no-target-directory treat LINK_NAME as a normal file 不明白它的意思,请大家可否举例说明下什么时候才会用到这个参数 解决方案 将链接名当作普通文件(在对目录进行符号链接时要用到此选项) 解决方案二: 我尝试在本目录下ln -s ../ link_a 和 ln -s -T ../ link_b,然后再用ls -al查看link_a和li

linux中cat命令的用法

今天需要用cat查看文件,无奈忘记如何使用,于是整理了一下 linux中cat命令的用法:  1.用cat命令查看文件:$ cat file1;  $ cat -n file1:在查看的时候加上行号: cat命令还可以使用通配符:$ cat -n file*,把所有的file文件都显示出来(顺序显示)  也可以这样:$ cat -n file1 file2 file3 ;结果用通配符输出结果是完全一样的  2.合并文件 可以用cat命令和重定向操作符(>>)来合并文件: $ cat file*

Linux中grep命令的12个实践例子

你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu $ sudo yum install grep #RH

批处理模拟Linux中watch命令

REM 批处理模拟Linux中watch命令@echo offcolor 1f:CheckVar1if {%1} equ {} (goto Help) else goto CheckVar2 :Helpecho %0 [time] [command]echo.goto End :CheckVar2if {%1} equ {} (goto Help) else goto OK :OKecho WScript.sleep 1000*%1>%temp%/sleep.vbsFor /L %%t in (

Linux中service命令和/etc/init.d/的关系

Linux中service命令和/etc/init.d/的关系   service xxx启动 /etc/init.d/ 目录下的xxx脚本 如一个脚本名为 mysvc保存在/etc/init.d/下可以用 service mysvc 运行mysvc脚本 echo passed in option $0 $1   if [ $1 = "start" ] then         echo myservice started................................

Linux中patch命令的使用

下面我们来揭示一下Linux中patch命令的使用技巧. 语法是patch [options] [originalfile] [patchfile] 例如: patch -p[num] <patchfile -p参数决定了是否使用读出的源文件名的前缀目录信息,不提供-p参数,则忽略所有目录信息,-p0(或者-p 0)表示使用全部的路径信息,-p1将忽略第一个"/"以前的目录,依此类推.如/usr/src/linux-2.4.16/Makefile 这样的文件名,在提供-p3 参数