Answers:
我用了 find dirname -not -empty -ls
,假设GNU找到。
ls
你用过 find
;)虽然我提高了......这是一个合适的解决方案
这是一份工作 找 ls不够强大。
find -maxdepth 1 -size +0 -print
-maxdepth 1
- 这告诉find只搜索当前目录,删除查看所有子目录或更改数字下降2,3或更多级别。
-size +0
这告诉find查找大小超过的文件 0
字节。 0
可以更改为您想要的任何尺寸。
-print
告诉find打印出它找到的文件的完整路径
编辑:
迟到:你应该也可以添加 -type f
切换到上面。这告诉find只查找文件。正如下面的评论所述, -print
切换不是真的需要。
-maxdepth 1
之前 -size +0
。也 -print
是默认操作,因此不需要它。
find
在有效选项和可用选择方面有很大差异。 GNU find
(非常普遍) 将 如果你把它发出警告 -size
之前 -maxdepth
。
Ls几乎没有筛选文件的选项:这不是它的工作。过滤文件是shell的工作,用于简单的情况(通过globbing)和查找复杂案例的工作。
在zsh中,你可以 L
globbing限定符仅保留大小为> 0的文件( .
限定符限制为常规文件):
ls *(.L+0)
其他shell的用户必须使用find。使用GNU find(主要在Linux上找到):
find -maxdepth 1 -type f ! -empty -exec ls {} +
符合POSIX的方式是:
find . -type f -size +0c -exec ls {} + -o -name . -o -prune
如果 ls
不仅仅是一个例子,你只是打算视觉检查,你可以按大小排序: ls -S
。