我在一个目录中有大量文件和目录。
我需要根据权限对它们进行排序。
例如
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)
这将只打印第一个字段(权限)和最后一个(文件名)。