我想定期搜索系统上是否存在与特定名称匹配的所有文件,删除它们,然后如果找到任何文件,则运行附加命令。
test=1
find /home/ -name 'file_name_to_find' -exec bash -c "rm \"{}\" && test=2" \;
echo $test
if [[${test} == '2']] ; then
echo "it worked!"
fi
Run Code Online (Sandbox Code Playgroud)
我认为因为 exec 中的变量作用域是新的,所以脚本的其余部分无法访问 $test 的值。
我怎样才能达到预期的结果?
您可以先查看-delete
该文件,然后再-print
查看它。如果有任何内容被打印,它已被删除,所以只需检查它是否不为空。
removed=$(find /home/ -name 'file_name_to_find' -delete -print)
if [[ -n "$removed" ]]; then
echo "Some files were removed"
fi
Run Code Online (Sandbox Code Playgroud)