我想我可以简短地回答我的问题。为什么以下命令没有输出?
find /usr/share/themes -mindepth 1 -maxdepth 1 -type d -execdir test -d {}/gnome-shell \;
我期望它打印所有文件夹/usr/share/主题包含一个文件夹gnome 外壳exec
。有几个网站表明,在/中将 test 用作命令execdir
是可行的。
从man find
:
-exec command ;
Execute command; true if 0 status is returned. [...]
答案1
–exec
–execdir
如果命名的程序返回 0 值作为其退出状态,则计算结果为 true。
这意味着,如果你说了类似–execdir test -d {}/gnome-shell \; –print
或 的内容,那么只有当命令返回 true 时,后面的内容才会被处理。举一个极端的例子,你甚至可以说–exec … \; –something
–exec
test
寻找起始目录…–execdir test–d {}/gnome-shell \;–exec rm–rf {} \;
尽管这不一定是最好的方法。
答案2
test
不输出任何内容,它仅返回退出状态。
但是,如果您仅进行深度 1 测试,则可以find
完全避免:
ls -d /usr/share/themes/*/gnome-shell