【问题标题】:Linux find with symlink recursion and some extrasLinux find 带有符号链接递归和一些附加功能
【发布时间】:2014-03-04 13:14:32
【问题描述】:
我目前正在监视许多目录中的日志文件;特别是那些刚刚创建的。自从我的 Linux 以来已经有很长时间了,经过一些试验和错误,我已经将我需要的东西拼凑在一起,但需要整整 20 秒或更长时间才能返回。我希望我可以请专家来看看它,并就一些更精简的东西给我建议。
find . -type f -follow -print | xargs ls -ltr 2>/dev/null | grep '2\?10' | tail
例如,查找与名称匹配的最后 10 个文件。理想情况下,我想把它变成一个接受一个参数并替换 grep 表达式的 bash 脚本,但我一次只计算一件事。
提前感谢您的帮助!
【问题讨论】:
标签:
linux
find
symlink
xargs
【解决方案1】:
我硬着头皮写了剧本;稍后我会进一步修改它。
#!/bin/bash
if [ $# != 2 ]; then
echo findLog Usage: findLog [3 digit cluster] [pick 1: main message service detail soap]
exit 0
fi
if [ "$2" == "service" ]; then
file="$2-time-"
elif [ "$2" == "detail" ]; then
file="$2-time-"
else file="$2-"
fi
cluster="$1"
#store logpaths for readability
a="/pathto/A"
b="/pathto/B"
c="/pathto/C"
d="/pathto/D"
e="/pathto/E"
f="/pathto/F"
g="/pathto/G"
h="/pathto/H"
logpaths=( $a $b $c $d $e $f $g $h )
for i in "${logpaths[@]}"
do
ls -ltr "$i"/*.log | grep "$file"${cluster:0:1}${i: -1}${cluster: -2}
done