Como os argumentos -exec {}
devem vir depois do -iname
(como find
'executa' seus argumentos da esquerda para a direita), não é possível fazer o que você deseja usando um alias. Em vez disso, deixe seu alias invocar um script que contenha, por exemplo:
#!/bin/sh
find . -iname "" -exec vi {} \;
Observe que isso invocará vi
uma vez para cada arquivo encontrado. Se houver muitos desses arquivos, você estará fazendo muitos :q!
ou ZZ
para sair deles. Se você quiser invocar uma instância de vi
para editar todos os arquivos encontrados, altere o \;
para um +
:
find . -iname "" -exec vi {} +
Como alternativa, você pode usar a substituição de comando para fornecer os argumentos para vi
:
vi $(find . -iname "") # do not use when file names may contain whitespace
No entanto, a desvantagem disso é que ele falhará nos nomes de arquivos que contêm espaço em branco.
Se você preferir não criar um arquivo de script para o comando, coloque a declaração em uma função do shell:
fvi () { find . -iname "" -exec vi {} + ; }