Terminal 传递表达式以查找命令不起作用

Terminal 传递表达式以查找命令不起作用,terminal,find,solaris,Terminal,Find,Solaris,我尝试使用以下命令列出路径中包含/SL/src/的所有文件 find * -type f -name '*/SL/src/*' 但它不会打印任何内容,即使在目录SL/src中有文件,您也可以使用类似的内容: find * -type d -exec sh -c ' for i do [ "$(basename $i)" = src ] && [ "$(basename $(dirname $i))" = SL ] && find "$i" -type

我尝试使用以下命令列出路径中包含/SL/src/的所有文件

find * -type f -name '*/SL/src/*'

但它不会打印任何内容,即使在目录SL/src中有文件,您也可以使用类似的内容:

find * -type d -exec sh -c '
for i do
  [ "$(basename $i)" = src ] &&
  [ "$(basename $(dirname $i))" = SL ] &&
  find "$i" -type f ; done
' sh {} + 
或者简单地说:

find * -type f | grep /SL/src/

这是行不通的,我很惊讶您没有收到一条错误消息find的GNU变体确实警告并退出了:name参数定义了一个名称模板,而不是路径模板。您正在查找文件名中包含/SL/src/的文件!