使用 find 排除文件夹删除空文件

0 find

我通常使用以下命令通过 find 删除主目录中的空文件和文件夹:

find /home/tjuh -empty -delete
Run Code Online (Sandbox Code Playgroud)

不过我想排除一个文件夹,即/home/tjuh/.local/share/Steam/steamapps/common/所以我尝试了:

find . -not -path '/home/tjuh/.local/share/Steam/steamapps/common/' -empty
Run Code Online (Sandbox Code Playgroud)

查看该特定文件夹是否被排除在搜索之外,但它并没有真正按照我想要的方式工作。

有什么建议么?

cha*_*aos 5

参数-path是一个模式,所以你必须使用通配符,否则它只会完全匹配:

find . -not -path "./.local/share/Steam/steamapps/common/*" -empty
Run Code Online (Sandbox Code Playgroud)

另外,您必须使用绝对路径或相对路径,而不是混合使用它们。上面的是相对路径,下面的是绝对路径:

find /home/tjuh -not -path "/home/tjuh/.local/share/Steam/steamapps/common/*" -empty
Run Code Online (Sandbox Code Playgroud)