如何在“find”命令中排除 CWD

ste*_*nmg 1 bash

如何使用 find 排除当前工作目录 (CWD)?

考虑我当前的工作目录包含以下目录 ( ls .):

a b c d e f g
Run Code Online (Sandbox Code Playgroud)

查找命令:find . -maxDepth 1 -type d将返回:

.
./a
./b
./c
./d
./e
./f
./g
Run Code Online (Sandbox Code Playgroud)

我尝试了这里的答案(如何在 find .command 中排除目录):find . -maxdepth 1 -type d -path . -prune -false

虽然我可以使用,但ls我很好奇如何使用find.

因此命令的预期输出find应该类似于以下ls .输出:

./a
./b
./c
./d
./e
./f
./g
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

您可以使用-mindepth 1选项来避免匹配.(当前)目录:

find . -mindepth 1 -maxdepth 1 -type d
Run Code Online (Sandbox Code Playgroud)

为了能够仅匹配单个字符目录:

find . -mindepth 1 -maxdepth 1 -type d -name '?'
Run Code Online (Sandbox Code Playgroud)

  • @TedLyngmo:这仅在“gnu find”中允许。在BSD上发现会报错 (2认同)

归档时间:

查看次数:

160 次

最近记录:

5 年,2 月 前