使用find
命令配合-name
选项来实现模式匹配,并结合-exec
选项来执行rm
命令。下面是一个具体的命令:
bashfind . -type d -name 'test_*' ! -name '*40' -exec rm -r {} +
这个命令的各个部分的含义如下:
find .
:从当前目录开始搜索。-type d
:只搜索目录。-name 'test_*'
:搜索名称以test_
开头的目录。! -name '*40'
:排除名称以40
结尾的目录。-exec rm -r {} +
:对找到的每个符合条件的目录执行rm -r
命令来递归删除它。{}
是一个占位符,代表当前找到的目录,+
表示将所有找到的目录一次性传递给rm
命令。
如果你只是想查看哪些文件夹会被删除,而不是真正删除它们,你可以使用echo
命令代替rm -r
:
bashfind . -type d -name 'test_*' ! -name '*40' -exec echo rm -r {} +
这个命令会打印出所有将被删除的文件夹的路径,但不会真正删除它们。当你确认这些路径是你想要删除的文件夹时,可以去掉echo
并运行真正的删除命令。