find 命令不打印未修剪的项目

find 命令不打印未修剪的项目

此命令以非递归方式打印工作目录中具有以句点开头的基本名称(也称为隐藏条目)的文件/目录。

find . -maxdepth 1 -name '.*'

要打印除那些隐藏条目之外的所有内容,我希望以下命令能够工作......但没有打印任何内容。

find . -maxdepth 1 -name '.*' -prune -o -print

我在我的主目录中运行了这些命令,其中存在一些非隐藏条目,例如文件,下载我希望打印的目录、一些杂项文件等。

有人可以解释一下为什么吗?

答案1

谓词-prune修剪目录- 在这种情况下,-name将匹配起始目录.,从而修剪整个树。

你想要做的只是否定匹配-name

find . -maxdepth 1 ! -name '.*'

或者

find . -maxdepth 1 -not -name '.*'

相关内容