Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在更新程序脚本中删除带有通配符的文件_Android_Edify - Fatal编程技术网

Android 在更新程序脚本中删除带有通配符的文件

Android 在更新程序脚本中删除带有通配符的文件,android,edify,Android,Edify,我可以使用更新程序脚本删除/system:中的文件 delete("/system/app/YouTube.apk"); 但是,我无法执行以下操作 delete("/system/app/*.odex"); 为什么不起作用?我认为命令是有限的。只有指定文件的全名和路径,才能删除文件。 不过,您可以编写一个sh脚本来完成这项工作,并从更新程序脚本执行它 例如,使用以下代码创建一个sh文件,并将其放在zip的根目录中: #!/sbin/sh rm -rf /system/app/*.odex

我可以使用更新程序脚本删除/system:
中的文件

delete("/system/app/YouTube.apk");
但是,我无法执行以下操作

delete("/system/app/*.odex");

为什么不起作用?

我认为命令是有限的。只有指定文件的全名和路径,才能删除文件。 不过,您可以编写一个sh脚本来完成这项工作,并从更新程序脚本执行它

例如,使用以下代码创建一个sh文件,并将其放在zip的根目录中:

#!/sbin/sh

rm -rf /system/app/*.odex
并从更新程序脚本执行它

package_extract_file("rmodex.sh", "/tmp/rmodex.sh");
set_perm(0, 0, 0777, "/tmp/rmodex.sh");
run_program("/tmp/rmodex.sh", "");
delete("/tmp/rmodex.sh");
其中rmodex.sh是您创建的文件。
还有一件事,要小心,因为
rm-rf/system/app/*.odex
还会删除所有带有*.odex名称的文件夹。

非常感谢。我将在我的下一个updater-script上尝试此解决方案。请注意,试图使用通配符删除目录中的每个文件的人:可以使用delete_recursive命令删除目录及其所有内容。正如@raulx222所说的,这些命令是有限的,我认为您也不能按文件类型过滤这个命令。