stat 命令还可以用来创建文件列表。这些列表非常灵活,你可以选择包含上述任何或全部信息。

(本文字数:3797,阅读时长大约:4 分钟)

stat 命令提供了很多关于文件的详细信息。

它不仅提供了文件最近变化的日期/时间,还显示了最近访问文件的时间和权限变化。它可以同时告诉你文件的字节大小和块的数量。它可以显示文件使用的 inode 以及文件类型。它包括了文件所有者和相关用户组的名称和 UID/GID。它以 “rwx”(被称为 “人类可读” 格式)和数字方式显示文件权限。在某些系统中,它甚至可能包括文件创建的日期和时间(称为“出生”)。

除了提供所有这些信息外,stat 命令还可以用来创建文件列表。这些列表非常灵活,你可以选择包含上述任何或全部信息。

要生成一个自定义列表,你只需要使用 stat 命令的 -c(或 --format)选项,并指定你想要包含的字段。例如,要创建一个以两种格式显示文件权限的列表,使用这个命令:

$ stat -c '%n %a %A' my*

my.banner 664 -rw-rw-r--

mydir 775 drwxrwxr-x

myfile 664 -rw-rw-r--

myjunk 777 lrwxrwxrwx

mykey 664 -rw-rw-r--

mylog 664 -rw-rw-r--

myscript 755 -rwxr-xr-x

mytext 664 -rw-rw-r--

mytext.bak 664 -rw-rw-r--

mytwin 50 -rw-r-----

mywords 664 -rw-rw-r--

如上例所示,%n 代表文件名,%a 代表八进制的权限,%A 代表 rwx 形式的权限。完整的列表如后面所示。

要为这个命令创建一个别名,输入这个命令,或在 .bashrc 文件中添加这个定义。

$ alias ls_perms="stat -c '%n %a %A'"

要创建一个非常接近 ls -l 提供的长列表,可以这样做:

$ stat -c '%A %h %U %G %s %y %n' my*

-rw-rw-r-- 1 shs shs 255 2020-04-01 16:20:00.899374215 -0400 my.banner

drwxrwxr-x 2 shs shs 4096 2020-09-07 12:50:20.224470760 -0400 mydir

-rw-rw-r-- 1 shs shs 6 2020-05-16 11:12:00.460355387 -0400 myfile

lrwxrwxrwx 1 shs shs 11 2020-05-28 18:49:21.666792608 -0400 myjunk

-rw-rw-r-- 1 shs shs 655 2020-01-14 15:56:08.540540488 -0500 mykey

-rw-rw-r-- 1 shs shs 8 2020-03-04 17:13:21.406874246 -0500 mylog

-rwxr-xr-x 1 shs shs 201 2020-09-07 12:50:41.316745867 -0400 myscript

-rw-rw-r-- 1 shs shs 40 2019-06-06 08:54:09.538663323 -0400 mytext

-rw-rw-r-- 1 shs shs 24 2019-06-06 08:48:59.652712578 -0400 mytext.bak

-rw-r----- 2 shs shs 228 2019-04-12 19:37:12.790284604 -0400 mytwin

-rw-rw-r-- 1 shs shs 1983 2020-08-10 14:39:57.164842370 -0400 mywords

不同之处包括: 1、不试图将字段排成可辨认的一列,2、日期是 yy-mm-dd 格式,3、时间字段更精确,4、增加了时区(-0400 是 EDT)。

如果你想根据最后一次访问的日期来列出文件(例如,用 cat 命令来显示),使用这样的命令:

$ stat -c '%n %x' my* | sort -k2

mytwin 2019-04-22 11:25:20.656828964 -0400

mykey 2020-08-20 16:10:34.479324431 -0400

mylog 2020-08-20 16:10:34.527325066 -0400

myfile 2020-08-20 16:10:57.815632794 -0400

mytext.bak 2020-08-20 16:10:57.935634379 -0400

mytext 2020-08-20 16:15:42.323391985 -0400

mywords 2020-08-20 16:15:43.479407259 -0400

myjunk 2020-09-07 10:04:26.543980300 -0400

myscript 2020-09-07 12:50:41.312745815 -0400

my.banner 2020-09-07 13:22:38.105826116 -0400

mydir 2020-09-07 14:53:10.171867194 -0400

用 stat 列出文件细节时,可用的选项包括:

%a - 八进制的访问权限(注意 # 和 0 的 printf 标志)

%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 纪元以来的秒数形式;如果未知,则为 0。

%x – 上次访问时间,以人类可读形式

%X – 上次访问时间,以 UNIX 纪元以来的秒数形式

%y – 上次数据修改时间,以人类可读形式

%Y – 上次数据修改时间,以 UNIX 纪元以来的秒数形式

%z – 上次状态改变的时间,以人类可读形式

%Z – 上次状态改变的时间,以 UNIX 纪元以来的秒数形式

这些字段的选择都列在手册页中,你可以选择任何一个,不过用你喜欢的选项创建一些别名应该可以省去很多麻烦。有些选项,如 SELinux 安全上下文字符串,除非在系统中有使用,它将不可用。文件创建时间只有在你的系统保留该信息的情况下才可用。

本文由 LCTT 原创编译,Linux中国 荣誉推出

linux挂载点 知乎,使用 Linux stat 命令创建灵活的文件列表 | Linux 中国相关推荐

  1. linux生成文件清单,技术|使用 Linux stat 命令创建灵活的文件列表

    stat 命令提供了很多关于文件的详细信息. 它不仅提供了文件最近变化的日期/时间,还显示了最近访问文件的时间和权限变化.它可以同时告诉你文件的字节大小和块的数量.它可以显示文件使用的 inode 以 ...

  2. 在Linux中配置软 RAID,使用mdadm命令创建RAID5, RAID设备的数据恢复

    1.在Linux中配置软 RAID RAID(Redundant Array of Inexpensive Disks,独立磁盘完余阵列)用于将多个廉价的小型磁盘驱动器合并成一个磁盘阵列,以提高存储性 ...

  3. Linux中如何一条命令创建多个文件夹

    创建文件夹:make directory 缩写就是:mkdir 见名知意:在Linux中创建文件夹使用的是mkdir 在当前目录下创建一个文件夹 mkdir dirName 在当前目录下创建多个文件夹 ...

  4. linux怎么连接两个服务器,一个服务器端同时创建两个socket连接 linux

    不可不知 Linux操作系统网络服务器模型 Linux系统网络服务器模型主要有两种:并发服务器和循环服务器. 所谓并发服务器就是在同一个时刻可以处理来自多个客户端的请求;循环服务器是指服务器在同一时刻 ...

  5. linux 查看文件列表,linux显示文件列表命令ls,使用ls --help列出所有命令参数

    ls命令的相关参数 在提示符下输入ls --help ,屏幕会显示该命令的使用格式及参数信息: 先介绍一下ls命令的主要参数: -a 列出目录下的所有文件,包括以 . 开头的隐含文件. -A 显示除 ...

  6. linux黑板模式,敲黑板!怎样使用 Linux stat 命令创建灵活文件列表?

    stat命令提供了很多关于文件的详细信息. 它不仅提供了文件最近变化的日期/时间,还显示了最近访问文件的时间和权限变化.它可以同时告诉你文件的字节大小和块的数量.它可以显示文件使用的 inode 以及 ...

  7. linux挂载点 知乎,APP测试辅助神器之ADB

    作者:捉虫布道人 ADB,即 Android Debug Bridge,ADB具有安装卸载apk.拷贝推送文件.查看设备硬件信息.查看应用程序占用资源.在设备执行shell命令等功能,是 Androi ...

  8. linux挂载media装服务,CentOS8服务器入门系列教程(五):Linux挂载光盘、yum安装软件包...

    不废话,直接上货!!!旨在为您解决开发中遇到的疑难杂症,文末有大厂必备资料分享. 一.环境准备 二.步骤 本篇文章分享的是如何用yum软件包管理器安装光盘中自带的软件包,我们以iptables.ser ...

  9. Linux挂载nfs只读文件系统,[mcj]利用NFS mount远程目录之后文件夹变成只读的解决办法...

    之前讲过如何利用NFS将远程目录mount到本地文件夹的方法: 不过这个方法目前有个问题,就是mount之后的文件夹变成了只读,但是直接查看文件夹的权限,看到的却是777 看来问题出在了NFS mou ...

最新文章

  1. win7关闭开机启动项_电脑开机全是各种广告?来看看我怎么解决的吧
  2. [YTU]_2489( C++结构体之统计最高最低分)
  3. Cortex M3寄存器组
  4. Circular Sequence UVA - 1584
  5. from 下拉框多个值提交_Git提交规范
  6. CentOS7 /etc/profile 添加环境变量重开终端后不生效
  7. 转JMeter 利用Jmeter批量数据库插入数据
  8. 基于Matlab----RSSI指纹定位技术性能仿真
  9. 大型项目用python吗_在大型项目上,Python 是个烂语言吗?
  10. 推荐一个准确率99.9%的离线IP地址定位服务!
  11. 拓端tecdat|R语言中编写最小工作示例(MWRE)
  12. ai进入轮廓模式怎么退出_AI 绘图工具里,我不知道按了什么键一保存都是轮廓了!怎么办!怎样恢复呢?...
  13. ctfmon.exe windows输入法无法启动
  14. Android 选择图片、上传图片之PictureSelector
  15. Python3.7,在Anaconda中安装PIL
  16. 《用户体验设计:100堂入门课》20190920
  17. 数字电路学习——三极管的使用
  18. 25.java中IO流的应用---缓冲流、转换流以及对象流过程(附讲解和练习)
  19. linux ghost视频教程,Linux攻略 用Ghost备份Linux系统的方法
  20. 自学大数据者请进:大数据学习线路及各阶段学习书籍推荐

热门文章

  1. pythonpandas设置索引_pandas DataFrame的修改方法(值、列、索引)
  2. 用命令行连接mysql文件时出现错误_MySQL使用cmd命令窗口安装错误信息提示的解决方法...
  3. java split 路径,JAVA通过文件路径分隔符分割文件路径
  4. Arch Linux 服务器,Arch Linux不适合当作服务器操作系统的四大原因
  5. 工具箱锁打不开了怎么办_木门门锁坏了怎么办?维修小技巧在手不发愁
  6. 台灯的内置和外置是什么意思_两款米家台灯:1S/Lite对比简评
  7. 玩转 SpringBoot 2 之整合 WebSocket 篇
  8. 注解形式控制器 数据验证,类型转换
  9. Jsp+Servlet+Mysql实现的火车票预定管理
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物医院管理系统