我想在shell编程中创建一个函数,它获得两个参数,目录名和文件名,并执行以下操作:它从给定的目录名开始搜索文件名,然后在目录名的所有子目录中继续搜索。我希望输出是找到文件名的每个父目录,并使用文件名大小进行排序。
感谢您的帮助,谢谢。
发布于 2020-04-02 01:17:26
不确定您要求的是哪种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/asmhttps://stackoverflow.com/questions/60976356
复制相似问题