如何在当前目录及其子目录中显示所有大于10k字节的文件。
尝试过,ls -size +10k但是没有用。
ls -size +10k
find . -size +10k -exec ls -lh {} \+
第一部分与@sputnicks答案相同,并成功查找目录中超过10k的所有文件(不要将k与K混淆),我的补充是,第二部分然后执行ls -lh或ls列出(-l)文件通过人类可读的大小(-h)。如果愿意,可以取反h。当然{}是文件本身,而\+仅仅是文件的替代\;
ls -lh
{}
\+
\;
在实践中\;会重复或:
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
find
另外,您可能希望按大小排序清单。这是相对容易实现的。我可以-s选择ls,ls -ls然后将其通过管道sort -n进行数字排序
-s
ls
ls -ls
sort -n
变成:
find . -size +10k -exec ls -ls {} \+ | sort -n
或以相反的顺序添加-r:
find . -size +10k -exec ls -ls {} \+ | sort -nr
最后,标题说在目录中找到 最大的 文件。您可以通过将代码通过管道传递到tail
tail
find . -size +10k -exec ls -ls {} \+ | sort -n | tail -1 会在目录及其子目录中找到最大的文件。
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人类可读的size选项来输入。这是我最喜欢使用的工具之一,但不适用于的旧版本ls,例如,我们有一个工作中的旧centOs 4服务器,而该服务器没有-h
sort
-h