根据unix中find命令的状态删除多个目录中的文件

时间:2016-04-07 08:55:28

标签: bash file find

我需要删除多个目录中存在的文件,如果找到则忽略。我尝试了以下代码段。

   ls $dir/"$input.xml" 2> /dev/null
        var = `echo$?`
        if [[ $var == 0 ]]; then
            echo -e "\n Deleting...\n"
            rm $dir/"$input.xml"

失败了。

有人可以建议我更好的解决方案或修改上述代码片段以适应解决方案吗?

2 个答案:

答案 0 :(得分:0)

不是100%肯定你的意思" 删除多个目录中存在的文件,如果找到则忽略"。假设您只想删除某些位于$ dir下的文件,请执行以下操作:

使用查找查找文件,然后输入 xargs rm

find "$dir" -type f -name "*.xml" | xargs rm

如果您的文件名可能包含空格,请执行以下操作:

find "$dir" -type f -name "*.xml" -print0 | xargs -0 rm

如果没有文件,请暂停 rm 错误消息:

find "$dir" -type f -name "*.xml" -print0 | xargs -0 rm 2>/dev/null

答案 1 :(得分:0)

使代码正常工作试试这个[插入空格],

`echo $?`

而不是这个,

`echo$?`