Você está procurando a substituição de comandos : substitua a saída de um comando por uma linha de comando.
find $(mount |awk '{print $3}') -name "aaa" -print
Isso só funciona se os pontos de montagem não contiverem nenhum espaço em branco ou *?\[
. Essa restrição raramente é um problema para pontos de montagem (mas certifique-se de que você não tenha pontos de montagem com caracteres de espaço - o comando awk
não os analisaria corretamente de qualquer maneira).
Você precisa dizer a find
para não atravessar os pontos de montagem, caso contrário find /
já percorre todo o seu sistema. Passe a opção -xdev
.
find $(mount |awk '{print $3}') -xdev -name "aaa" -print
Note que você provavelmente não deve executar find
em todos os sistemas de arquivos montados, já que existem sistemas de arquivos para uso interno do sistema que podem ser muito grandes e conter muitos arquivos que você não tem permissão para ler mensagens de erro). Em vez de obter a lista de sistemas de arquivos em mount
, obtenha-a em df
, que omite alguns desses sistemas de arquivos.
find $(df -P |awk 'NR != 1 {print $6}') -xdev -name "aaa" -print