首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Unix中按大小查找和排序文件

问在Unix中按大小查找和排序文件
EN

Stack Overflow用户
提问于 2020-04-02 01:01:51
回答 1查看 348关注 0票数 0

我想在shell编程中创建一个函数,它获得两个参数,目录名和文件名,并执行以下操作:它从给定的目录名开始搜索文件名,然后在目录名的所有子目录中继续搜索。我希望输出是找到文件名的每个父目录,并使用文件名大小进行排序。

感谢您的帮助,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-04-02 01:17:26

不确定您要求的是哪种Unix,但适用于Linux,也可能适用于常见的Unix系统:

代码语言:javascript
复制
find <directory> -name "<filename>" -ls | sort -k 7 -n -r | awk '{print $NF}' | xargs -n 1 dirname

  • sort =>按文件大小排序(查找输出的第7列是filesize)
  • awk =>打印文件名完整路径
  • 目录名=>获取匹配文件的父目录

示例:

代码语言:javascript
复制
# Find parent directory of all types.h under /usr/include, sorted by file size in desc order

$ find /usr/include/ -name "types.h" -ls | sort -k 7 -n -r | awk '{print $NF}' | xargs -n 1 dirname
/usr/include/x86_64-linux-gnu/bits
/usr/include/x86_64-linux-gnu/sys
/usr/include/c++/7/parallel
/usr/include/rpc
/usr/include/linux/sched
/usr/include/linux/iio
/usr/include/linux
/usr/include/asm-generic
/usr/include/x86_64-linux-gnu/asm
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60976356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档