Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何使用find -exec和rm删除目录内容(而不是目录本身)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图删除一些目录的内容(但不是目录本身)使用这个: find -type d -name someDirs -exec rm -rf {}/* \; 但它不起作用.有小费吗? 您的命令的问题在于,在实际调用命令之前,您的sHell将完成通配符扩展.由于您的sHell找不到与{} / *匹配的文件(因为您在当前目录中没有带有文字名{}的目录),*将被传递给未更改的命令,然后由以下命令修改:找到删除
我试删除一些目录的内容(但不是目录本身)使用这个
find -type d -name someDirs -exec rm -rf {}/* \;

但它不起作用.有小费吗?

解决方法

您的命令的问题在于,在实际调用命令之前,您的sHell将完成通配符扩展.由于您的sHell找不到与{} / *匹配的文件(因为您在当前目录中没有带有文字{}的目录),*将被传递给未更改的命令,然后由以下命令修改:找到删除someDirs目录中名为literal *的文件,因为rm命令不会再次扩展通配符.你可以通过运行来“调试”它
find -type d -name someDirs -exec echo rm -rf {}/* \;

代替.为了确保sHell有机会扩展你的*,让exec生成一个sHell,它可以扩展*(并保护命令不会首先用单引号扩展),如下所示:

find -type d -name someDirs -exec sh -c 'rm -rf {}/*' \;

或者像这样测试:

find -type d -name someDirs -exec sh -c 'echo rm -rf {}/*' \;

大佬总结

以上是大佬教程为你收集整理的linux – 如何使用find -exec和rm删除目录内容(而不是目录本身)?全部内容,希望文章能够帮你解决linux – 如何使用find -exec和rm删除目录内容(而不是目录本身)?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。