列出当前目录和所有子目录中特定大小的文件
如何在当前目录及其子目录中显示所有大于10k字节的文件。
尝试过,ls -size +10k
但是没有用。
回答:
find . -size +10k -exec ls -lh {} \+
第一部分与@sputnicks答案相同,并成功查找目录中超过10k的所有文件(不要将k与K混淆),我的补充是,第二部分然后执行ls
-lh或ls列出(-l)文件通过人类可读的大小(-h)。如果愿意,可以取反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
最后,标题说在目录中找到 文件。您可以通过将代码通过管道传递到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
人类可读的size选项来输入。这是我最喜欢使用的工具之一,但不适用于的旧版本ls
,例如,我们有一个工作中的旧centOs
4服务器,而该服务器没有-h
以上是 列出当前目录和所有子目录中特定大小的文件 的全部内容, 来源链接: utcz.com/qa/406238.html