除了使用tar tf
并根据我要查找的文件检查每个文件的输出之外,还有其他更有效的方法吗?
这就是我目前的操作方式,但是速度非常慢(大约有600-1000个适合的档案search_patterns
):
ARRAY=()
ARRAY[0]=/path/to/archives/*search_pattern1*
ARRAY[1]=/path/to/archives/*search_pattern2*
ARRAY[2]=/path/to/archives/*search_pattern3*
for f in ${ARRAY[@]}
do
if [[ $f =~ "matching_pattern1" ]]; then
if tar -tf "$f" | grep "matching_pattern2" ; then
printf "%s\n" $f;
exit 0;
fi
fi
done
对于它的价值,我search_patterns
已经连续3天了,我想首先查找与匹配的档案,matching_pattern1
然后浏览所有这些档案,matching_pattern2
并输出tar
包含该档案的文件。
Tar文件没有目录(例如zip文件),因此tar tf
唯一可以做的就是这样做。
如果必须多次运行,则当然可以列出文件中每个tar文件的内容并进行搜索:
tar tvf oneofthe.tar > oneofthe.tar.lst
如果几乎没有必要重新运行搜索,我什至会这样做,因为先执行该搜索然后搜索而不是搜索(例如使用grep)输出,这几乎不慢。 tar tf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句