【发布时间】:2020-07-13 12:37:03
【问题描述】:
我想在 shell 编程中创建一个函数,它获取 2 个参数,目录名和文件名,并执行以下操作:它从给定的目录名开始搜索文件名,然后进入所有子目录的目录名称以继续搜索。我希望输出是找到文件名的每个父目录,使用文件名大小排序。
非常感谢您的帮助,谢谢。
【问题讨论】:
标签: unix search directory size
我想在 shell 编程中创建一个函数,它获取 2 个参数,目录名和文件名,并执行以下操作:它从给定的目录名开始搜索文件名,然后进入所有子目录的目录名称以继续搜索。我希望输出是找到文件名的每个父目录,使用文件名大小排序。
非常感谢您的帮助,谢谢。
【问题讨论】:
标签: unix search directory size
不确定您要的是哪个 Unix,但对于 Linux 和可能常见的 Unix 系统:
find <directory> -name "<filename>" -ls | sort -k 7 -n -r | awk '{print $NF}' | xargs -n 1 dirname
例子:
# 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
【讨论】: