#!/bin/bash
log_dir=/home/abc/
cd $log_dir
a_1=$(find . -name a.1)
if [ "$a_1" == "./a.1" ]; then
tar -zcf abc.tar.gz a.* --exclude=a.0 --exclude=abc.tar.gz
shopt -s extgolb
rm -f !(a.0|abc.tar.gz)
fi
其中在/home/abc/下有a.0 a.1 a.2三个文件,我要把除了a.0以外的两个文件打包并删除打包前的两个文件,不加if语句没问题,加了if语句就报题目中的错,我加if是因为假如目录中只有a.0或无文件就不打包。
请大师指点!谢谢!
谢谢您 不过有两点想追尾您一下 1.我原来的脚本哪儿不对?2.最后rm -f那一行貌似没有执行成功 麻烦您再指点一下 谢谢您!
追答删除文件不对,rm不支持这种排除方式
另外判断文件存在不用这么麻烦, if 可以用 -f 判断是否普通文件