当前位置: 首页 > 科技观察

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

时间:2023-03-13 01:53:53 科技观察

,它不仅提供了最后一次文件更改的日期/时间,还显示了最后一次访问文件和权限更改的时间。它可以告诉您文件的字节大小和块数。它可以显示文件使用的inode和文件类型。它包括文件所有者和相关用户组的名称和UID/GID。它以“rwx”(称为“人类可读”格式)和数字显示文件权限。在某些系统上,它甚至可能包括文件创建的日期和时间(称为“出生”)。除了提供所有这些信息外,stat命令还可用于创建文件列表。这些列表是灵活的,您可以选择包含上述任何或所有信息。要生成自定义列表,只需使用stat命令的-c(或--format)选项并指定要包括的字段。例如,要创建以两种格式显示文件权限的列表,请使用此命令:$stat-c'%n%a%A'my*my.banner664-rw-rw-r--mydir775drwxrwxr-xmyfile664-rw-rw-r--myjunk777lrwxrwxrwxmykey664-rw-rw-r--mylog664-rw-rw-r--myscript755-rwxr-xr-xmytext664-rw-rw-r--mytext.bak664-rw-rw-r--mytwin50-rw-r-----mywords664-rw-rw-r--如上例所示,%n代表文件名,%a代表八进制的权限,%A代表rwx形式的权限。完整列表如下所示。要为此命令创建别名,请输入此命令,或将此定义添加到您的.bashrc文件中。$aliasls_perms="stat-c'%n%a%A'"要创建一个非常接近ls-l提供的长列表,请执行以下操作:$stat-c'%A%h%U%G%s%y%n'my*-rw-rw-r--1shsshs2552020-04-0116:20:00.899374215-0400my.bannerdrwxrwxr-x2shsshs40962020-09-0712:50:20.224470760-0400mydir-rw-sh-rw-rs-65220shs1611:12:00.46035538??7-0400myfilelrwxrwxrwx1shsshs112020-05-2818:49:21.666792608-0400myjunk-rw-rw-r--1shsshs6552020-01-1415:56:08.540540488-0500mykey-rw-rw-r--1shsshs82020-03-0417:13:13:21.406874246-0500Mylog-rwxr-xr-x1SSHSSHSSHSSHSSHSSHSSHSSHS201202020-09-0712:50:41.316745867-0400MYSCRIPT-0400mytext.bak-rw-r-----2shsshs2282019-04-1219:37:12.790284604-0400mytwin-rw-rw-r--1shsshs19832020-08-1014:39:5403mys-word40差异包括:1.没有尝试用于将字段排成可识别的列,2.日期采用yy-mm-dd格式,3.时间字段更精确,4.添加了时区(-0400是美国东部时间)。如果要根据上次访问日期列出文件(例如,使用cat命令),请使用此命令:$stat-c'%n%x'my*|sort-k2mytwin2019-04-2211:25:20.656828964-0400mykey2020-08-2016:10:34.479324431-0400mylog2020-08-2016:10:34.527325066-0400myfile2020-08-2016:10:57.815632794-0400mytext.bak2020-08-2016:10:57.935634379-0400mytext2020-08-2016:15:42.323391985-0400mywords2020-08-2016:15:43.479407259-0400myjunk2020-09-0710:04:26.543980300-0400myscript2020-09-0712:50:41.312745815-0400my.banner2020-09-0713:22:38.105826116-0400mydir2020-09-0714:53:10.171867194-0400当使用stat列出文件详细信息时,可用选项有:%a-八进制访问权限(注意#和0printf标志)%A--人类可读访问权限%b--分配块数(参见%B)%B–%b报告的每个块的字节数%C–SELinux安全上下文字符串%d–十进制的设备号%D–十六进制的设备号%f–十六进制的原始模式%F–文件类型%g–所有者组ID%G–所有者组名称%h–硬链接数%i–索引节点号%m–挂载点%n–文件名%N–如果是符号链接,解引用为指向的文件名%o–最佳I/O传输大小提示%s–总大小以字节为单位%t–十六进制的主要设备类型,对于字符/块设备特殊文件%T–十六进制的次要设备类型,对于字符/块设备特殊文件%u–所有者的用户ID%U–所有者的用户名%w&nd灰;文件创建时间,以人类可读的形式;如果未知,-%W–文件创建时间,自UNIX纪元以来的秒数,如果未知则为0。%x–上次访问时间,以人类可读的形式%X–上次访问时间,自UNIX纪元以来的秒数%y–上次数据修改时间,以人类可读的形式%Y–上次数据修改时间,自UNIX纪元以来的秒数%z-上次状态更改的时间,以人类可读的形式%Z-上次状态更改的时间,自UNIX纪元以来的秒数选项应该可以为您省去很多麻烦。某些选项(例如SELinux安全上下文字符串)除非在系统中使用,否则将不可用。文件创建时间仅在您的系统保留该信息时可用。