Ao usar este comando como um alias, $0 não é mais protegido pelas aspas simples, portanto, é convertido em seu nome de shell. Estes comandos demonstram isso:
$ alias F="echo '$0'"
$ F
bash
O nome do shell (presumivelmente bash ) é um nome de variável unset awk
Uma maneira de proteger $0 da expansão do shell seria usar algo como:
alias F="find -type f -size +1k -exec ls -gGsSh1 {} + | awk 'NR<=10 {print \find -type f -size +10M -exec ls -gGsSh1 {} + | awk 'NR<=10 {print}'
}'"
No entanto, como esse $0 é inútil, basta removê-lo da instrução awk .
find -type f -size +10M -exec ls -gGsSh1 {} + | awk 'NR<=10'
Você pode ir mais longe e remover todo o bloco, pois a impressão da linha selecionada é awk , de qualquer maneira:
find -type f -size +10M -exec ls -gGsSh1 {} + 2>&1 | head
Como alternativa, você pode continuar usando head e descartar a mensagem de erro:
$ alias F="echo '$0'"
$ F
bash