gpt4 book ai didi

linux - 在目录下列出所有内容,并提供详细信息(Linux Shell命令)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:27 25 4
gpt4 key购买 nike

我有兴趣列出Linux中特定路径下每个文件、目录、符号链接的详细信息。它还应该包括隐藏的文件/目录。例如,详细信息应包括每个列出项目的权限设置、所有权详细信息等。最后,它应该递归地显示该路径下每个其他目录下的所有内容。
我尝试使用ls -la但无法显示更多信息(如所有权),也无法递归显示路径下的所有内容。
理想情况下,信息应该以人类可读的格式呈现。

最佳答案

为了递归地显示每个文件的信息,应该使用find而不是ls。然后使用exec执行stat命令以显示所需信息。
这样的东西应该能满足你的需求:

find /path/to/search/under/ -name '*' -exec stat -c '%n  %F  %a  %U  %G  %N' {} \;

例如,给定此目录树(使用 Tree command):
|-- dirA
| |-- dirB
| | |-- .hiddenfileA
| | |-- fileA
| | |-- fileB
| | `-- symlincA -> /home/symlincA
| | |-- dirC
| | | |-- .hiddenFileB

使用命令 find /path/to/search/under/ -name '*' -exec stat -c '%n %F %a %U %G %N' {} \;输出:
/dirA  directory  555  root  root  '/dirA/'
/dirA/dirB directory 555 root root '/dirA/dirB'
/dirA/dirB/.hiddenfileA regular file 555 root root '/dirA/dirB/.hiddenfileA'
/dirA/dirB/fileA regular file 555 root root '/dirA/dirB/fileA'
/dirA/dirB/fileB regular file 755 root root '/dirA/dirB/fileB'
/dirA/dirB/symlincA symbolic linc 777 root root '/dirA/dirB/symlincA' -> '/home/symlincA/'
/dirA/dirB/dirC directory 755 root root '/dirA/dirB'
/dirA/dirB/dirC/.hiddenFileB regular file 555 root root `/dirA/dirB/dirC/.hiddenFileB`

Stat提供了多个选项,用于显示每个文件的信息。使用 man stat可以看到以下可用选项:
%以八进制表示的访问权限(注意“35;”和“0”printf标志)
%人类可读形式的访问权
%b分配的块数(请参阅%b)
%b由%b报告的每个块的字节大小
%C SELinux安全上下文字符串
%D十进制设备号
%十六进制的D设备号
%F原始模式(十六进制)
%F文件类型
%G所有者的组ID
%G业主集团名称
%H硬链接数
%索引编号
%M安装点
%n文件名
%n引用的文件名,带有取消引用if符号链接
%o最佳I/O传输大小提示
%s总大小(字节)
%t十六进制主设备类型,用于字符/块设备专用
文件夹
%t十六进制小设备类型,用于字符/块设备专用
文件夹
%所有者的用户ID
%u所有者用户名
%文件出生时间,人类可读;如果未知
%W文件出生时间,从纪元开始的秒数;如果未知,则为0
%最后一次访问时间,可读
%X上次访问的时间,自纪元以来的秒数
%上次数据修改的Y时间,可读
%上次数据修改的y时间,自epoch以来的秒数
%Z上次状态更改的时间,可读
%Z上次状态更改的时间,自纪元以来的秒数
编辑: ilkkachu's answer确实提供了与 stat相同的基本选项来显示,而不使用单独的 stat命令,因此除非您希望显示仅在 stat中找到的更高级选项,否则应首选它。

关于linux - 在目录下列出所有内容,并提供详细信息(Linux Shell命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47814863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com