繁体   English   中英

使用xargs删除目录

[英]Delete directories with xargs

我已经得到了我想用删除的文件夹列表xargs使用所产生find

find命令

$ find /home/users/lukes -maxdepth 1 -type d > test.txt

的test.txt

/home/users/lukes/2
/home/users/lukes/6
/home/users/lukes/7
/home/users/lukes/3
/home/users/lukes/1
/home/users/lukes/4
/home/users/lukes/5

命令和--verbose输出

$ xargs --verbose -0 -I{} rm -rfv {} < test.txt 
rm -rfv /home/users/lukes/2
/home/users/lukes/6
/home/users/lukes/7
/home/users/lukes/jadu_package_1.1.0
/home/users/lukes/3
/home/users/lukes/1
/home/users/lukes/4
/home/users/lukes/5

但是目录不会被删除吗?

我正在使用-0因为当我真正运行它时可能会有空格,我正在生成列表,所以我可以确认每行都可以安全地在文本文件中删除,而不是直接将其findxargs

有什么建议么 ?

因此,让我首先说我非常讨厌xargs。 如果不小心,可能会非常危险。 话虽如此,这样的事情会起作用:

查找/ home / users / luke -mindepth 1 -maxdepth 1 -type d | xargs --verbose -I {} rm -vfr“ {}”

通过将{}用双引号引起来,可以消除所有涉及空格的问题。 我倾向于尽可能经常在类似的东西周围使用“”或“”。 我在上面放了mindepth,以确保它不包含父文件夹,因为某些操作系统的maxdepth包含了父目录(即“。”),它将有效地破坏整个文件夹。 我想你不想那样。

同样,请非常小心xargs。 该命令可能是邪恶的。 我会说首先在它上添加-0以使其显示将要运行的内容,然后在真正确定后将其删除-0。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM