我正在尝试删除父目录中的所有文件和目录,但排除某些目录及其内容。为此,我使用寻找在 MacOS 上的 bash 脚本中。如果我仅排除一个目录,它就会起作用:
find ./public/wp-content -mindepth 1 ! -regex '^.\/public\/wp-content\/themes\(.*\)' -delete
但是当我尝试排除多个时却不行:
find ./public/wp-content -mindepth 1 ! -regex '^.\/public\/wp-content\/\(themes\|images\)\(.*\)' -delete
我尝试不逃避括号或管道等。但毫无作用...
答案1
尝试使用-E
选项来接受扩展正则表达式:
find -E ./public/wp-content -mindepth 1 ! -regex '^\./public/wp-content/\(themes\|images\).*' -delete
或者:
find -E ./public/wp-content -mindepth 1 ! -regex '^\./public/wp-content/(themes|images).*' -delete