Linux怎么用stat命令显示文件

Linux怎么用stat命令显示文件,第1张

用法: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硬链接数量

%iInode 编号

%m挂载点

%n文件名

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

%oI/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 命令获得值以进行进一步处理。

linux下查看文件详细信息命令stat。

说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态

与文件相关的3个时间:

1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。

2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。

3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令文件名。

size: 427

说明:

文件的大小.

Blocks: 8

说明:

这个文件占用了8个块,块的单位是512个字节,因为文件系统的块为4096个字节,除以512个字节,就是8个Blocks.也就是一个文件最小也要占用8个block.

regular file

说明:

文件的状态是不是正常的,此处为完整文件(个人理解是这个意思,请高手指点)

Device: fd00h/64768d

说明:是指存放文件的设备 详细的不太理解 请高手赐教

IO Block: 4096

说明:

IO

Block表示文件系统块的大小,ext3默认为4096,可以调整为2048等,但ext3最大也即是4096,可以通过tune2fs

-l /dev/sda1来确认.

Inode: 23724038

说明:

Inode就是I节点,这里说明的是23724038并不是系统已经用了这么多个inode,比如现在新建文件2,inode为23724039,这时新建文件3,inode为23724040,此时你删了文件2,再建文件4,它的inode还是23724039.

最后要注意一个文件只有一个Inode,Inode指引我们找到文件的信息.

Links: 1

说明:

只有这个文件名用了这个Inode.如果有两个文件名用了这个Inode,这里的数字将是2,例如一个硬链接。

S处于休眠状态,静止状态;+位于后台的进程组,R正在运行,在可中断队列中,D无法中断的休眠状态(通常io的进程)。具体 *** 作方法如下:

1、stat --help显示命令帮助信息。

2、stat --version显示命令版本信息。

3、stat -t file以简洁的方式输出。

4、stat -f file显示文件系统的信息。

5、stat file命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。

6、Access time指的是访问时间,就是最后一次访问该文件的时间。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6061705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存