Android 应用程序递归运行命令

发布于 2024-11-03 11:39:50 字数 883 浏览 1 评论 0原文

你好,我正在编写一个小应用程序,它运行一些我编写的脚本,这些脚本都存储在一个目录中,并且脚本偶尔会发生变化,根据我的服务器,有时会删除/添加一些脚本,所以我需要运行在运行脚本之前,应用程序发出的命令递归地 chmod 目录中的所有文件我使用以下代码来 chmod 文件,但不知道如何对目录中的所有文件执行此操作,

谢谢寻求任何帮助

//Code to chmod the file
execCommand("busybox chmod 755 ");

//execCommand Method
public Boolean execCommand(String command) {
        try {
            Runtime rt = Runtime.getRuntime();
            Process process = rt.exec("su");
            DataOutputStream os = new DataOutputStream(process.getOutputStream()); 
            os.writeBytes(command + "\n");
            os.flush();
            os.writeBytes("exit\n");
            os.flush();
            process.waitFor();
           } catch (IOException e) {
              return false;
              } catch (InterruptedException e) {
              return false;
              }
              return true;
              }

Hi so i'm writing a little app that runs a few scripts I have written the scripts are all stored in a directory and the scripts change occasionally that is some are deleted/added from time to time depending on my server so I need to run a command from the app to recursively chmod all of the files in the directory before the scripts are run i'm using the following code to chmod the files but can't figure out how to do it for all the files in the directory

Thank you for any help

//Code to chmod the file
execCommand("busybox chmod 755 ");

//execCommand Method
public Boolean execCommand(String command) {
        try {
            Runtime rt = Runtime.getRuntime();
            Process process = rt.exec("su");
            DataOutputStream os = new DataOutputStream(process.getOutputStream()); 
            os.writeBytes(command + "\n");
            os.flush();
            os.writeBytes("exit\n");
            os.flush();
            process.waitFor();
           } catch (IOException e) {
              return false;
              } catch (InterruptedException e) {
              return false;
              }
              return true;
              }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风轻花落早 2024-11-10 11:39:50

我的设备上的 busybox chmod 接受 -R 递归标志

或者您可以用困难的方式做到这一点:

busybox 似乎没有足够完整的 xargs 命令(带有替换字符串选项)来处理 chmod 希望该文件作为其最后一个参数而不是它的第一个。

这适用于我的:

busybox find |当读 f 时;执行 chmod 755 $f ;完成

它可能会或可能不会在你身上;特别是,我不完全确定谁在运行 while 循环 - busybox 或 toolbox。在我最近使用的一台供应商库存图像设备上,while 循环不起作用。也没有找到...

busybox chmod on my device accepts the -R recurse flag

Or you could do it the hard way:

busybox doesn't seem to have a complete enough xargs command (with the replace string option) to deal with chmod wanting the file as its last argument rather than its first.

This works on mine:

busybox find | while read f ; do chmod 755 $f ; done

It may or may not on yours; in particular, I'm not completely sure who is running the while loop - busybox or toolbox. On one vendor-stock-image device I was playing with recently, while loops didn't work. It didn't have find either...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文