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