Eu tenho uma pasta pai chamada "parent_folder" com muitas subpastas, nessas subpastas existe um arquivo chamado "foo.mp4".
Eu posso encontrar esses arquivos facilmente fazendo o seguinte:
mymacbook:parent_folder username$ find ./ -name "foo.mp4" -exec echo {} \;
Agora que retorna o caminho de cada arquivo, relativo a parent_folder /
./path/to/foo.mp4
Como posso retornar apenas o caminho, sem o nome do arquivo?
find ./ -name "foo.mp4" -printf "%h\n"imprimirá o caminho para cada arquivo encontrado (um por linha). Mais do que o habitual, ninguém usa, -exec echo {}portanto, existe -print(padrão omitido) ou printfação.
-printfé apenas GNU. Os OPs mencionam o OS / X (um sistema BSD).
-printf%hDiretórios principais do nome do arquivo (todos, exceto o último elemento). Se o nome do arquivo não contiver barras (já que está no diretório atual), o especificador% h será expandido para "." .