删除树中的文件

时间:2012-03-24 16:37:37

标签: bash unix

你能帮我解决代码问题吗?它必须删除树中的每个文件

function option_c {
for i in `find "$TEST_DIR" -type f | grep -E "(stdout|stderr|status)-(captured|delta)"` ; do
    if [ -w $i ] ; then
        rm $i
    fi
    exit 0
done
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

取出exit,它会在第一个文件后终止你的脚本。

但是,您可以使用find本身完成所有这些操作。

答案 1 :(得分:1)

正如三人提到的,你可以找到所有人:

find "$TEST_DIR" -type f -perm +0200 -regextype posix-awk -regex ".*st(dout|derr|atus)-(captured|delta).*" -delete 

find "$TEST_DIR" -type f -perm +0200 -regex ".*st\(dout\|derr\|atus\)-\(captured\|delta\).*" -delete 

<击>

<击>
find "$TEST_DIR" -type f -perm +0200 -exec egrep "(stdout|stderr|status)-(captured|delta)" {} ";" -delete 

<击>

(至少gnu-find,这就是我所拥有的,具有-delete开关和正则表达式选项)。