Android shell脚本删除目录以外的所有文件和文件夹

Android shell脚本删除目录以外的所有文件和文件夹,第1张

概述现在我使用rm-r/blaa/*删除blaa目录中的所有文件夹和文件.我正在寻找的是一种删除blaa目录中的所有文件夹和文件的方法,除非文件夹名为abc.有任何想法吗?解决方法:在Linux中:这有很多方法;但我相信最好的方法就是使用“查找”工具.find!-iname"abc"-execrm-rf{}\;

现在我使用rm -r / blaa / *删除blaa目录中的所有文件夹和文件.我正在寻找的是一种删除blaa目录中的所有文件夹和文件的方法,除非文件夹名为abc.

有任何想法吗?

解决方法:

在Linux中:

这有很多方法;但我相信最好的方法就是使用“查找”工具.

find ! -iname "abc" -exec rm -rf {} \;

我们可以轻松找到并删除未命名为“abc”的每个文件和文件夹.

find      - to find files! -iname  - to filter files/folders, the "!" means not-exec     - to execute a command on every filerm -rf    - remove/delete files -r for folders as well and -f for force"{} \;"   - allows the commands to be used on every file

在AndroID中:

由于您不能使用“rm -rf”,当您使用“rm -r”时,它将删除文件夹“.”.最终删除所有内容.

我猜你手机上有“root”,因为你可以使用“查找”工具.

find ! -iname "abc" | sed 1d | xargs rm -rfind      - to find files! -iname  - to filter files/folders, the "!" means not|         - pipe sends data to next commandsed       - replace text/output"1d"      - removes first line when you do "find ! -iname" by itselfxargs     - runs commands after piperm -r     - remove/delete files, "-r" for recursive for folders

编辑:在AndroID中修复和测试

您可以轻松更改此设置以满足您的需求,如果有帮助,请告诉我们!

采用的解决方案

……以及最后的结果……这是用于用例的内容(有助于总结下面的评论):

find ! -iname "abc" -maxdepth 1 -depth -print0 | sed '$d' | xargs -0 rm -r;

笔记:

> -depth – 反转输出(所以你不要先删除子目录
> -maxdepth 1 – 使用-depth的一种空洞,但是嘿…这只说当前目录的输出内容而不是sub-dirs(无论如何都被-r选项删除)
> -print0和-0 – 在换行符而不是空格分割(对于名称中带空格的目录)
> sed“$d” – 表示要删除最后一行(因为它现在已经反转).最后一行只是一段时间,其中包括将调用删除目录中的所有内容(和子!)

我相信有人可以收紧这个,但它有效,并且是一个很好的学习 *** 作!

再次感谢Jared Burrows(以及整个Unix社区 – 去团队!) – MindWire

总结

以上是内存溢出为你收集整理的Android shell脚本删除目录以外的所有文件和文件夹全部内容,希望文章能够帮你解决Android shell脚本删除目录以外的所有文件和文件夹所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存