列出我不在的文件夹的内容时遇到问题,同时排除实际的文件夹名称本身.
例如:
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开关会影响整体行为.
你可以用-exec和basename:
find ~/test -type d -exec basename {} \;
Run Code Online (Sandbox Code Playgroud)
说明:
find ~/test -type d部件以递归方式查找所有目录~/test.-exec basename {} \;部分运行basename命令on {},即最后一步的所有结果都被替换为.