尾多个目录

时间:2017-07-08 18:26:44

标签: bash directory ls tail xargs

如何仅打印与特定模式匹配的嵌套目录中的最后一个(n)文件?

ls -l dir*/history/ | tail 

仅提供最后一个目录的内容。

我怀疑它与xargs有关,但无法弄清楚如何。

2 个答案:

答案 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*")