列出当前目录和所有子目录中特定大小的文件

eve*_*veo 37 unix linux bash command

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

试过ls -size +10k但是没用.

mat*_*hew 69

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

第一部分与@sputnicks答案相同,并且sucesffully查找目录中超过10k的所有文件(不要将k与K混淆),我的补充,第二部分然后执行ls -lh或ls列出(-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 + withfind

另外,您可能希望按尺寸排序列表.这相对容易实现.我会-s选择ls,ls -ls然后管道它以sort -n数字排序

这会成为:

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

或者以相反的顺序添加-r:

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

最后,你的标题说找到目录中的最大文件.你可以通过管道代码来做到这一点tail

find . -size +10k -exec ls -ls {} \+ | sort -n | tail -1 会找到目录及其子目录中最大的文件.

请注意,您还可以使用-S按大小对文件进行排序,并且无需排序.但要找到最大的文件,你需要使用head

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

使用-S而不是使用-S的好处sort是,您不必键入sort -n两个,也可以使用-h人类可读的大小选项.这是我最喜欢使用的产品之一,但不适用于较旧的版本ls,例如我们有一个旧的centOs 4服务器在工作,没有-h

  • 实际上这个答案是对的.我忘记了我们在本课程中介绍了find命令,因此我们可以使用它.答案是'找到.-size + 10k`.非常感谢您的详细解答,我真的很感激. (3认同)

Gil*_*not 11

试着这样做:

find . -size +10k -ls
Run Code Online (Sandbox Code Playgroud)

如果你想使用二进制文件ls:

find . -size +10k -exec ls -l {} \;
Run Code Online (Sandbox Code Playgroud)


小智 8

我意识到这项任务可能已经结束了.对于其他任何人:

你太复杂了.

find . -size +10k
Run Code Online (Sandbox Code Playgroud)