将两个查找命令合二为一

Mat*_*rin 2 linux bash shell find

我目前有以下行:

find . -type f ! -name "*.xml" -delete && find . -type d -empty -delete
Run Code Online (Sandbox Code Playgroud)

但由于它们是两个查找命令,我想我可以将它们合并为一个。但我不想使用-exec.

我不想使用任何 linux 发行版都预装的 bash 原生的东西。

che*_*ner 5

您可以使用-o(“或”,而不是find适用于其初选的隐式“和”)初选对初选进行分组。括号被转义以避免 shell 语法错误并确保它们作为参数传递给find.

find . \( \( -type f  ! -name "*.xml" \) -o \( -type d -empty \) \) -delete
Run Code Online (Sandbox Code Playgroud)