我需要按大小对所有具有 644 个权限的文件进行排序。
到目前为止,我尝试使用ls
命令来查找和排序,但似乎不正确。我认为它可能需要一个grep
命令,但我认为它需要显示 644 这样的数字,而不是 rwx。我不知道如何以简单的方式做到这一点,因为这是我第一次使用 Linux 和终端。
答案1
在标准bash
shell 中,你可以使用 find 命令执行此操作:
find . -perm 0644 -printf '%s %p\n'| sort -nr
这将查找具有权限的所有文件和目录0644
,并使用操作格式化打印结果-printf
。%s
表示文件大小和%p
文件路径。\n
表示新行。 输出通过管道传输到sort
,设置为按数字顺序排序 ( -n
) 和按相反顺序排序 ( -r
)。
答案2
使用 Z shell ( zsh
) 及其glob 限定符:
print -rC1 *(.DNf:u=6,go=4:oL)
含义如下
- . 仅匹配纯文本文件
- D 设置当前模式的 GLOB_DOTS 选项
- N 为当前模式设置 NULL_GLOB 选项
- F规格匹配具有访问权限的文件规格
- oL 按长度(以字节为单位)对结果进行排序;使用 OL 反转顺序