如何显示当前目录及其子目录中大于10k字节的所有文件.

试了ls -size +10k次,但没用.

推荐答案

find . -size +10k -exec ls -lh {} \+

第一部分与@sputnicks answer相同,并且成功地找到了目录中超过10k的所有文件(不要将k与k混淆),我补充说,第二部分然后执行ls -lh或ls,以人类可读的大小(-h)列出(-l)文件.如果你愿意的话,否定h.当然,{}是文件本身,\+只是\;的替代品

在实践中,\;会重复或:

ls -l found.file; ls -l found.file.2; ls -l found.file.3

其中\+将其显示为一条语句或:

ls -l found.file found.file.2 found.file.3

更多关于\; vs +find

此外,您可能希望列表按大小排序.这相对容易实现.我会将-s选项设置为ls,然后将其设置为ls -ls,再将其设置为sort -n,以进行数字排序

这将成为:

find . -size +10k -exec ls -ls {} \+ | sort -n

或按相反顺序添加-r:

find . -size +10k -exec ls -ls {} \+ | sort -nr

最后,你的标题是"在目录中查找biggest文件".您可以通过将代码管道化到tail来实现这一点

find . -size +10k -exec ls -ls {} \+ | sort -n | tail -1

注意:您也可以使用-S按大小对文件进行排序,而无需进行排序.但是要找到最大的文件,你需要使用head

find . -size +10k -exec ls -lS {} \+ | head -1

使用-S而不是sort的好处之一是,你不必输入sort -n和2,你也可以使用-h作为人类可读的大小选项.这是我最喜欢使用的版本之一,但在ls的旧版本中不可用,例如,我们有一台旧的centOs 4服务器,但没有-h

Linux相关问答推荐

为什么Read()和cin.get()对输出缓冲区的影响不同?

如何在带模式的文件频繁更改的管道中使用grep-f带模式的文件?

用户作用域在Linux内核密钥环(Golang)中是什么意思?

使用sed命令将记录中的字符串替换为DD-MMM-YYYY日期格式

SessionNotCreatedException:无法启动新会话.响应代码 500 在远程服务器上的 Apache Tomcat/10.0.23 上使用 ChromeDriver

使用 awk 将多行文本转换为 CSV

如何拆分多个分隔符但将它们保留在方括号之间?

ENQCMD 指令的好处和微操作是什么?

如何使用换行符或制表符或空格 grep 多行字符串

判断指定名称的画面是否存在

全屏(Fullscreen)小部件

如何告诉 valgrind 对Forking 进程进行 memcheck?

如何在 Bash 中对齐空格分隔表的列?

如何将 bash 别名定义为多个命令的序列?

polkitd未注册身份验证代理的解释

如何分析内存使用情况?

使用inotify的正确方法是什么?

为什么两次使用 grep 时没有显示输出?

如何让我的 Golang Web 服务器在后台运行?

如何通过命令行识别特定的 Linux 风格?