查找目录中的文件夹,而不列出父目录

cbc*_*bcp 18 linux bash find

列出我不在的文件夹的内容时遇到问题,同时排除实际的文件夹名称本身.

例如:

root@vps [~]# find ~/test -type d
/root/test
/root/test/test1
Run Code Online (Sandbox Code Playgroud)

但是我希望它只显示/ test1,作为示例.

思考?

san*_*uel 36

简单就没有错

find ~/test -mindepth 1
Run Code Online (Sandbox Code Playgroud)

同样,这也会产生同样的效果:

find ~/test/*
Run Code Online (Sandbox Code Playgroud)

因为它匹配包含内的一切~/test/,但不是~/test自己.

顺便说一句,你几乎肯定会发现find会抱怨-mindepth n任何其他开关之后的选项,因为排序通常很重要,但-(min|max)depth n开关会影响整体行为.

  • 您也可以使用'-maxdepth 1 -mindepth 1'列出该文件夹的文件夹和文件 (2认同)

sam*_*hen 7

你可以用-execbasename:

find ~/test -type d -exec basename {} \;
Run Code Online (Sandbox Code Playgroud)

说明:

  • 正如您所知,该find ~/test -type d部件以递归方式查找所有目录~/test.
  • -exec basename {} \;部分运行basename命令on {},即最后一步的所有结果都被替换为.

  • 我认为OP需要test2/test3,而不是test3,以防嵌套目录.但我不确定;-) (4认同)