我在一个目录中有大量文件和目录。
我需要根据权限对它们进行排序。
例如
drwx------
drwxr-xr-x
drwxr-x---
Run Code Online (Sandbox Code Playgroud)
我只是想知道我们是否可以使用ls
?
ls
不直接支持按权限排序,但可以结合 sort 命令:
ls -l | sort
Run Code Online (Sandbox Code Playgroud)
您可以使用-k
排序选项从特定字符开始匹配,格式为-k FIELD.CHAR
,权限是ls
输出中的第一个字段。因此 eg-k 1.2
将从权限字符串的第二个字符开始,这将忽略任何目录/设备/链接等标志,或-k 1.5
按组权限排序。
如果您不想要 的额外输出ls -l
,可以使用 awk 将其删除:
ls -l | sort | awk '{ print $1, $NF}'
Run Code Online (Sandbox Code Playgroud)
这将只打印第一个字段(权限)和最后一个(文件名)。