浏览 7947 次
锁定老帖子 主题:shell 判断某扩展名文件是否存在
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-13
因为需求需要处理大量log文件,考虑到awk的高效,但处理前需要判断文件是否存在,因.log文件有多个,所以用if判断。
if [ -e *.log ]; then
此时如果文件不存在,则不报错误。但如果有多个.log文件存在,则报错
if[ too many arguments 事实上因为-e 或者 -f 都只能接受一个参数,用了通配符后会有多个文件存在的可能就导致多个参数出现的可能,所以报错。
经过多次测试也找了些资料,发现以下解决方法:
files=$(ls *.log 2> /dev/null | wc -l) if [ "$files" != "0" ] ; then
即可达到目的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-16
感谢。。用这个办法,我解决了一个小问题
类似你这个代码。。 同时可以用 for file in $files ; do echo "${file}" # 你的应用代码 done 列遍历所有的文件。。呵呵 |
|
返回顶楼 | |