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