从查找中排除单条路径(修剪)

从查找中排除单条路径(修剪)

有没有办法/usr/bin/find通过绝对位置将某个目录列入黑名单。我正在使用find (GNU findutils) 4.4.2

find . -type f -not -path '*/media/*'

我期望这永远不会遍历名为 的路径中的任何内容/media/。然而,事实显然并非如此。阅读文档后,我发现答案就在 中-prune

find . -path '*/media/*' -prune | grep media

然而,这仍然会返回一些东西

./media/.listing
./media/ChromeImageGallery
./media/WheelsTV
./media/AutoBuilder4-Data

为什么即使-prune找到,也会返回/media/子目录中的内容?

答案1

尝试一下:

find . -path '*/media/*' -prune -o -print

它会输出media但其下没有任何内容。

以下将完全消除media

find . -name 'media' -prune -o -print

相关内容