在当前目录和所有子目录中列出特定大小的文件



如何在当前目录中显示大于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

其他,您可能需要按大小订购的清单。这相对容易完成。我会在-sls选项上,因此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

的旧CentOS 4服务器

尝试这样做:

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}'

相关内容

  • 没有找到相关文章

最新更新