我需要删除多个目录中存在的文件,如果找到则忽略。我尝试了以下代码段。
ls $dir/"$input.xml" 2> /dev/null
var = `echo$?`
if [[ $var == 0 ]]; then
echo -e "\n Deleting...\n"
rm $dir/"$input.xml"
失败了。
有人可以建议我更好的解决方案或修改上述代码片段以适应解决方案吗?
答案 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$?`