如何对具有一定权限的文件按大小排序?

Eva*_*va 7 permissions command-line sort

我需要按大小对所有具有 644 权限的文件进行排序。

到目前为止,我已经尝试使用ls命令来查找和排序,但它们似乎不正确。我认为它可能需要一个grep命令,但我认为它需要显示像 644 而不是 rwx 这样的数字。我不知道如何以简单的方式做到这一点,因为这是我第一次使用 Linux 和终端。

van*_*ium 10

在标准bashshell 中,您可以使用 find 命令来执行此操作:

find . -perm 0644 -printf '%s %p\n'| sort -nr
Run Code Online (Sandbox Code Playgroud)

这将查找具有权限的所有文件和目录0644,并打印使用该-printf操作格式化的结果。%s代表文件大小和%p文件路径。\n代表一条新线。输出通过管道传输到sort,设置为按数字排序 ( -n) 和逆序排序 ( -r)。


ste*_*ver 6

使用 Z shell ( zsh) 及其glob 限定符

print -rC1 *(.DNf:u=6,go=4:oL)
Run Code Online (Sandbox Code Playgroud)

含义在哪里

  • 。仅匹配纯文件
  • D 为当前模式设置 GLOB_DOTS 选项
  • N 为当前模式设置 NULL_GLOB 选项
  • fspec匹配访问权限与spec匹配的文件
  • oL 按长度(大小以字节为单位)对结果进行排序;使用OL颠倒顺序