当我这样做时
rm *.txt
或
-f
我被提示输入每个文件,因为我没有为rm
指定find . -type f -name '*.txt' | xargs rm
选项。
但是当我这样做时:
String path = MediaStore.Images.Media.insertImage(
mContext.getContentResolver(), mImageBitmap, "Shared image", null);
return Uri.parse(path);
在没有确认的情况下删除文件。
这背后的逻辑是什么?是否有可能在某些文档中找到原因?我无法解释为什么会出现这种情况。
答案 0 :(得分:6)
你有一个rm命令的别名设置为'rm -i'。因此,如果直接按
中的方式调用命令rm file.txt
或
rm *.txt
别名将被扩展。如果您将使用xargs调用它,如
find . -type f -name '*.txt' | xargs rm
rm作为一个简单的字符串参数传递给xargs,后来由xargs调用,没有别名替换shell。 您的别名可能在〜/ .bashrc中定义,以防您要删除它。
答案 1 :(得分:0)
根据您的xargs版本,您可能会使用--no-run-if-empty GNU扩展选项:
find . -type f -name '*.txt' | xargs --no-run-if-empty rm -rf