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

  • 本文关键字:文件夹 查找 linux bash find
  • 更新时间 :
  • 英文 :


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

前任:

root@vps [~]# find ~/test -type d
/root/test
/root/test/test1

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

思潮?

一个简单的没有错

find ~/test -mindepth 1

同样,这将具有相同的效果:

find ~/test/*

因为它匹配~/test/中包含的所有内容,但不~/test本身。

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

你可以

-execbasename来做到这一点:

find ~/test -type d -exec basename {} ;

解释:

  • find ~/test -type d部分在 ~/test 下递归查找所有目录,如您所知。
  • -exec basename {} ;部分在{}上运行basename命令,这是最后一步的所有结果被替换的地方。

然后你需要-type f而不是-type d .

或者,如果要显示文件夹列表,不包括父-mindepth 1find ~/test -type d -mindepth 1 )。

现在你编辑了它,我想你想要的可能是

find ~/test -type d -mindepth 1 |cut -d/ -f3-

但我认为你需要更具体;-)

我只是用sed修复了它

find $BASE -type d ( ! -iname "." )|sed s/$BASE//g

其中$BASE是初始文件夹名称。

相关内容

  • 没有找到相关文章

最新更新