Linux stat 命令教程:查看文件详细信息 🧐
stat
命令是 Linux 系统中用于显示文件或文件系统的详细信息的工具。它提供的信息远超普通的 ls -l
命令,可以帮助你了解文件的权限、大小、修改时间、 inode 信息等关键数据。通过 stat
命令,你可以深入了解文件的底层细节,尤其在系统管理、调试和优化时尤为重要。⚙️
本文将带你全面了解 stat
命令的使用方法和实用技巧,让你在日常工作中得心应手!🚀
1. 基本用法 📝
最基本的 stat
命令用法是直接查看文件或目录的详细信息:
stat <file-or-directory>
例如,查看 .bashrc
文件的详细信息:
stat .bashrc
示例输出:
文件:.bashrc
大小:3526 块:8 IO 块大小:4096 普通文件设备:259,11 Inode: 392454 硬链接:1
权限:(0644/-rw-r--r--) Uid: ( 1000/ soulio) Gid: ( 1000/ soulio)
访问时间:2024-11-20 14:10:40.071617328 +0800
修改时间:2024-11-03 19:12:54.666050032 +0800
变更时间:2024-11-03 19:12:54.666050032 +0800
创建时间:2024-11-03 19:12:54.666050032 +0800
英文输出
File: .bashrc
Size: 3526 Blocks: 8 IO Block: 4096 regular file
Device: 259,11 Inode: 392454 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ soulio) Gid: ( 1000/ soulio)
Access: 2024-11-20 14:10:40.071617328 +0800
Modify: 2024-11-03 19:12:54.666050032 +0800
Change: 2024-11-03 19:12:54.666050032 +0800
Birth: 2024-11-03 19:12:54.666050032 +0800
输出解释:
- Size:文件大小,单位为字节。
- Blocks:文件占用的磁盘块数。
- IO Block:文件的 I/O 块大小。
- Device:文件所在的设备。
- Inode:文件的 inode 号。
- Links:文件的硬链接数。
- Access:文件的最后访问时间。
- Modify:文件的最后修改时间。
- Change:文件的最后状态更改时间。
- Birth:文件的创建时间(并非所有文件系统都支持)。
2. 使用选项进行定制化输出 🎨
stat
命令提供了一些选项,可以让你定制输出的内容。
2.1 只显示文件大小
如果你只想查看文件的大小,可以使用 -c
选项并指定格式:
stat -c %s example.txt
输出:
1024
2.2 查看 inode 号
如果你需要查看文件的 inode 号,可以使用 %i
格式:
stat -c %i example.txt
输出:
1234567
2.3 查看文件的最后修改时间
要查看文件的最后修改时间,可以使用 %y
格式:
stat -c %y example.txt
输出:
2024-11-21 14:20:00.000000000
2.4 查看文件权限和其他信息
你也可以定制输出多个信息,例如文件权限、文件类型、文件大小、时间等:
stat -c "Permissions: %A, Size: %s, Modified: %y" example.txt
输出:
Permissions: -rw-r--r--, Size: 1024, Modified: 2024-11-21 14:20:00.000000000
技巧:你可以自定义输出格式,组合不同的格式字符串来获取自己需要的信息,甚至输出为 CSV 或 JSON 格式,以便于进一步处理。
常用格式说明:
%A
:文件权限(类似ls -l
输出)%i
:inode 号%s
:文件大小(单位:字节)%y
:最后修改时间%n
:文件名%F
:文件类型(例如:regular file
、directory
等)
3. 查看目录的统计信息 🏁
stat
命令不仅可以查看文件的详细信息,还可以查看目录的信息。目录的统计信息会包括目录本身的 inode、大小等内容。你可以像查看文件一样查看目录:
stat /path/to/directory
输出示例:
File: /path/to/directory
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 803h/2051d Inode: 9876543 Links: 2
Access: 2024-11-21 14:30:00.000000000
Modify: 2024-11-21 14:20:00.000000000
Change: 2024-11-21 14:10:00.000000000
Birth: -
对于目录,stat
输出的是目录本身的信息,包括访问、修改、状态更改时间,但没有文件内容的修改时间。
4. 查看多个文件的统计信息 📂
stat
命令支持一次查看多个文件或目录的统计信息,使用空格分隔文件名即可:
stat file1.txt file2.txt
输出示例:
File: file1.txt
Size: 1024 Blocks: 8 IO Block: 4096 regular file
...
File: file2.txt
Size: 2048 Blocks: 16 IO Block: 4096 regular file
...
4.1 查看整个文件夹下的文件信息
你也可以配合 find
命令使用 stat
来查看整个目录下的文件信息:
find /path/to/directory -type f -exec stat {} \;
这会列出指定目录中所有文件的详细信息。
5. 文件系统统计信息 📊
你还可以查看文件系统的统计信息。虽然 stat
主要用于文件和目录,但它也可以查看挂载点的信息:
stat /dev/sda1
这将显示磁盘设备 /dev/sda1
的相关信息。