如何在当前目录中显示大于10k字节的所有文件和子目录。
尝试了ls -size +10k
,但这无效。
find . -size +10k -exec ls -lh {} +
第一部分与@sputnicks的答案相同,Sucesffully在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 so
find . -size +10k -exec ls -lS {} + | head -1
使用-s而不是sort
进行操作的好处是一个,您不必键入sort -n
,并且两个您也可以使用-h
人体可读尺寸选项。这是我最喜欢使用的之一,但是ls
的较旧阶段不可用,例如,我们在工作中没有-h
尝试这样做:
find . -size +10k -ls
,如果您想使用二进制ls
:
find . -size +10k -exec ls -l {} ;
我意识到任务可能已经结束了。对于其他任何人:
您过于复杂。
find . -size +10k
find . -size +10k -type f -maxdepth 1 -exec ls -lh {} ; > myLogFile.txt
-type f:指定常规文件类型
-maxDepth 1:确保它仅在当前目录中找到文件
您可以使用这样的LS:
ls -lR | egrep -v '^d' | awk '$5>10240{print}'
说明:
ls -lR # list recursivly
egrep -v '^d' # only print lines which do not start with a 'd'. (files)
仅打印第五列(大小)比10240字节更大的打印行:
awk '$5>10240{print}'