如何仅打印与特定模式匹配的嵌套目录中的最后一个(n)文件?
做
ls -l dir*/history/ | tail
仅提供最后一个目录的内容。
我怀疑它与xargs
有关,但无法弄清楚如何。
答案 0 :(得分:2)
要直接回答您的问题,请使用循环:
for d in dir*/history/; do
ls -l "$d" | tail
done
但是,对于比这更高级的目录“过滤”(和处理),find
可能派上用场。
答案 1 :(得分:1)
试试:
find . -type d -name "dir*" | while read dir; do find "$dir" | tail -n 5; done
不是很简洁,但是如果你需要匹配所有级别的嵌套目录并从每个子目录中选择N个文件...
在每个管道之前添加2> / dev / null以禁止“#permission; permission denied'消息。或者使用sudo
如果需要在while循环中更改全局变量,则为进程替换的等效项:
while read dir; do find "$dir" | tail -n 5; done < <(find . -type d -name "dir*")