From 7b4aa538ff2c17f37e9252954ed3d4e7a6435c74 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 21 Sep 2020 22:30:58 +0800 Subject: [PATCH] PRF @geekpi --- ...ommand to create flexible file listings.md | 92 +++++++++---------- 1 file changed, 45 insertions(+), 47 deletions(-) diff --git a/translated/tech/20200909 Using the Linux stat command to create flexible file listings.md b/translated/tech/20200909 Using the Linux stat command to create flexible file listings.md index 99e9d6c5a0..e36fb85f5b 100644 --- a/translated/tech/20200909 Using the Linux stat command to create flexible file listings.md +++ b/translated/tech/20200909 Using the Linux stat command to create flexible file listings.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Using the Linux stat command to create flexible file listings) @@ -10,13 +10,15 @@ 使用 Linux stat 命令创建灵活的文件列表 ====== -**stat** 命令提供了很多关于文件的详细信息。 +![](https://img.linux.net.cn/data/attachment/album/202009/21/223030wi3xfx2eprij13z2.jpg) -它不仅提供了文件最近变化的日期/时间,还显示了最近访问文件的时间和权限变化。它可以同时告诉你文件的字节大小和块的数量。它显示文件使用的 inode 以及文件类型。它包括文件所有者和相关用户组的名称和 UID/GID。它以 “rwx”(被称为 "人类可读 "格式)和数字方式显示文件权限。在某些系统中,它甚至可能包括文件创建的日期和时间(称为"出生")。 +`stat` 命令提供了很多关于文件的详细信息。 -除了提供所有这些信息外,**stat** 命令还可以用来创建文件列表。这些列表非常灵活,你可以选择包含上述任何或全部信息。 +它不仅提供了文件最近变化的日期/时间,还显示了最近访问文件的时间和权限变化。它可以同时告诉你文件的字节大小和块的数量。它可以显示文件使用的 inode 以及文件类型。它包括了文件所有者和相关用户组的名称和 UID/GID。它以 “rwx”(被称为 “人类可读” 格式)和数字方式显示文件权限。在某些系统中,它甚至可能包括文件创建的日期和时间(称为“出生”)。 -要生成一个自定义列表,你只需要使用 **stat** 命令的 **-c**(或 --**format**)选项,并指定你想要包含的字段。例如,要创建一个以两种格式显示文件权限的列表,使用这个命令: +除了提供所有这些信息外,`stat` 命令还可以用来创建文件列表。这些列表非常灵活,你可以选择包含上述任何或全部信息。 + +要生成一个自定义列表,你只需要使用 `stat` 命令的 `-c`(或 `--format`)选项,并指定你想要包含的字段。例如,要创建一个以两种格式显示文件权限的列表,使用这个命令: ``` $ stat -c '%n %a %A' my* @@ -33,15 +35,15 @@ mytwin 50 -rw-r----- mywords 664 -rw-rw-r-- ``` -如上例所示,**%n** 代表文件名,**%a** 代表八进制的权限,**%A** 代表 **rwx** 形式的权限。完整的列表如下所示。 +如上例所示,`%n` 代表文件名,`%a` 代表八进制的权限,`%A` 代表 `rwx` 形式的权限。完整的列表如后面所示。 -要为这个命令创建一个别名,输入这个,或在 **.bashrc** 文件中添加这个定义。 +要为这个命令创建一个别名,输入这个命令,或在 `.bashrc` 文件中添加这个定义。 ``` $ alias ls_perms="stat -c '%n %a %A'" ``` -要创建一个非常接近 **ls -l** 提供的长列表,可以这样做: +要创建一个非常接近 `ls -l` 提供的长列表,可以这样做: ``` $ stat -c '%A %h %U %G %s %y %n' my* @@ -58,9 +60,9 @@ lrwxrwxrwx 1 shs shs 11 2020-05-28 18:49:21.666792608 -0400 myjunk -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)。 +不同之处包括: 1、不试图将字段排成可辨认的一列,2、日期是 `yy-mm-dd` 格式,3、时间字段更精确,4、增加了时区(-0400 是 EDT)。 -如果你想根据最后一次访问的日期来列出文件(例如,用 **cat** 命令来显示),使用这样的命令: +如果你想根据最后一次访问的日期来列出文件(例如,用 `cat` 命令来显示),使用这样的命令: ``` $ stat -c '%n %x' my* | sort -k2 @@ -77,44 +79,40 @@ my.banner 2020-09-07 13:22:38.105826116 -0400 mydir 2020-09-07 14:53:10.171867194 -0400 ``` -用 **stat** 列出文件细节时,可用的选项包括: +用 `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 – 文件创建时间,以纪元以来的秒数形式;如果未知,则为 0。 - * %x – 上次访问时间,以人类可读形式。 - * %X – 上次访问时间,以纪元以来的秒数形式。 - * %y – 上次数据修改时间,以人类可读形式。 - * %Y – 上次数据修改时间,以纪元以来的秒数形式。 - * %z – 上次状态改变的时间,以人类可读形式。 - * %Z – 上次状态改变的时间,以纪元以来的秒数形式。 + * `%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 安全上下文字符串,除非在系统中有使用,它将无法使用。文件创建只有在你的系统保留该信息的情况下才能使用。 - -加入 [Facebook][2] 和 [LinkedIn][3] 上的 Network World 社区,评论热门主题。 +这些字段的选择都列在手册页中,你可以选择任何一个,不过用你喜欢的选项创建一些别名应该可以省去很多麻烦。有些选项,如 SELinux 安全上下文字符串,除非在系统中有使用,它将不可用。文件创建时间只有在你的系统保留该信息的情况下才可用。 -------------------------------------------------------------------------------- @@ -123,7 +121,7 @@ via: https://www.networkworld.com/article/3573802/using-the-linux-stat-command-t 作者:[Sandra Henry-Stocker][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出