我想使用 rm -rf 删除文件夹内的文件/文件夹,但跳过或忽略特定文件夹。
有人建议将其与另一个问题重复,但事实并非如此。另一个问题询问跳过文件。我想跳过一个文件夹及其所有内容。
答案1
这:
find . -mindepth 1 -maxdepth 1 -not -name '.svn' -print0 | xargs -0 -r rm -rf
我相信它会按照你的要求执行。它会跳过 .svn 目录及其内容,但会删除其他所有内容,包括文件和目录,包括当前目录和任何子目录中以“.”开头的文件和目录。
答案2
它是评论中链接的重复...无论如何,对于目录:
find . ! \( -type d -and -iname "test" \)
查看test
目录是否被跳过。
然后:
find . ! \( -type d -and -iname "test" \) -delete
仅find . ! -iname "test"
适用于文件和目录。
答案3
查找 . -not -path ./.svn/* !-name .svn
本质上,第一部分排除该目录中的所有文件,第二部分排除目录本身。