使用Linuxstat命令创建灵活的文件列表

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

10余年的澄江网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整澄江建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“澄江网站设计”,“澄江网站推广”以来,每个客户项目都认真落实执行。

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

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

 
 
 
  1. $ stat -c '%n %a %A' my* 
  2. my.banner 664 -rw-rw-r-- 
  3. mydir 775 drwxrwxr-x 
  4. myfile 664 -rw-rw-r-- 
  5. myjunk 777 lrwxrwxrwx 
  6. mykey 664 -rw-rw-r-- 
  7. mylog 664 -rw-rw-r-- 
  8. myscript 755 -rwxr-xr-x 
  9. mytext 664 -rw-rw-r-- 
  10. mytext.bak 664 -rw-rw-r-- 
  11. mytwin 50 -rw-r----- 
  12. mywords 664 -rw-rw-r-- 

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

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

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

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

 
 
 
  1. $ stat -c '%A %h %U %G %s %y %n' my* 
  2. -rw-rw-r-- 1 shs shs 255 2020-04-01 16:20:00.899374215 -0400 my.banner 
  3. drwxrwxr-x 2 shs shs 4096 2020-09-07 12:50:20.224470760 -0400 mydir 
  4. -rw-rw-r-- 1 shs shs 6 2020-05-16 11:12:00.460355387 -0400 myfile 
  5. lrwxrwxrwx 1 shs shs 11 2020-05-28 18:49:21.666792608 -0400 myjunk 
  6. -rw-rw-r-- 1 shs shs 655 2020-01-14 15:56:08.540540488 -0500 mykey 
  7. -rw-rw-r-- 1 shs shs 8 2020-03-04 17:13:21.406874246 -0500 mylog 
  8. -rwxr-xr-x 1 shs shs 201 2020-09-07 12:50:41.316745867 -0400 myscript 
  9. -rw-rw-r-- 1 shs shs 40 2019-06-06 08:54:09.538663323 -0400 mytext 
  10. -rw-rw-r-- 1 shs shs 24 2019-06-06 08:48:59.652712578 -0400 mytext.bak 
  11. -rw-r----- 2 shs shs 228 2019-04-12 19:37:12.790284604 -0400 mytwin 
  12. -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 命令来显示),使用这样的命令:

 
 
 
  1. $ stat -c '%n %x' my* | sort -k2 
  2. mytwin 2019-04-22 11:25:20.656828964 -0400 
  3. mykey 2020-08-20 16:10:34.479324431 -0400 
  4. mylog 2020-08-20 16:10:34.527325066 -0400 
  5. myfile 2020-08-20 16:10:57.815632794 -0400 
  6. mytext.bak 2020-08-20 16:10:57.935634379 -0400 
  7. mytext 2020-08-20 16:15:42.323391985 -0400 
  8. mywords 2020-08-20 16:15:43.479407259 -0400 
  9. myjunk 2020-09-07 10:04:26.543980300 -0400 
  10. myscript 2020-09-07 12:50:41.312745815 -0400 
  11. my.banner 2020-09-07 13:22:38.105826116 -0400 
  12. mydir 2020-09-07 14:53:10.171867194 -0400 

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

 
 
 
  1. %a - 八进制的访问权限(注意 # 和 0 的 printf 标志) 
  2. %A – 人类可读的访问权限 
  3. %b – 分配的块数(见 %B) 
  4. %B – %b 报告的每个块的字节数 
  5. %C – SELinux 安全上下文字符串 
  6. %d – 十进制的设备编号 
  7. %D – 十六进制的设备编号 
  8. %f – 十六进制的原始模式 
  9. %F – 文件类型 
  10. %g – 所有者的组 ID 
  11. %G – 所有者的组名 
  12. %h – 硬链接的数量 
  13. %i – inode 编号 
  14. %m – 挂载点 
  15. %n – 文件名 
  16. %N – 如果是符号链接,会解引用为指向的文件名 
  17. %o – 最佳 I/O 传输大小提示 
  18. %s – 以字节为单位的总大小 
  19. %t – 十六进制的主要设备类型,用于字符/块设备特殊文件 
  20. %T – 十六进制的次要设备类型,用于字符/块设备特殊文件 
  21. %u – 所有者的用户 ID 
  22. %U – 所有者的用户名 
  23. %w – 文件创建时间,以人类可读形式; 如果未知,则为 -。 
  24. %W – 文件创建时间,以 UNIX 纪元以来的秒数形式;如果未知,则为 0。 
  25. %x – 上次访问时间,以人类可读形式 
  26. %X – 上次访问时间,以 UNIX 纪元以来的秒数形式 
  27. %y – 上次数据修改时间,以人类可读形式 
  28. %Y – 上次数据修改时间,以 UNIX 纪元以来的秒数形式 
  29. %z – 上次状态改变的时间,以人类可读形式 
  30. %Z – 上次状态改变的时间,以 UNIX 纪元以来的秒数形式 

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

当前文章:使用Linuxstat命令创建灵活的文件列表
浏览路径:http://www.mswzjz.cn/qtweb/news18/39118.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能