列出我不在的文件夹的内容时遇到问题,同时排除实际的文件夹名称本身.
例如:
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 {}
,即最后一步的所有结果都被替换为.