在Linux中递归删除特定目录

在Linux中递归删除特定目录

我意外删除了我正在工作的站点根目录中的 .svn 文件夹。因此,我需要从此项目中删除所有 .svn,重新签出,然后用我已有的内容覆盖该签出。问题是,我不确定如何在 Linux 中递归删除目录。

答案1

听起来您想从树中删除 .svn 目录的所有实例,但保留所有其他数据不变。

find <checkout_root> -name .svn -type d -exec rm -rf {} \;

答案2

Find 使这个任务变得轻松。

$ find /path/to/files -name '.svn' -exec rm -rf {} \;

不过,您可能希望在删除文件之前先运行一个带有 echo 的程序来验证文件。

$ find /path/to/files -name '.svn' -exec echo {} \;

答案3

find /path/to/files -name .svn -type d -print0 \
    | xargs --null --no-run-if-empty rm --recursive --force --

相关内容