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
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)