find -exec onde filename não é o último parâmetro

1

Estou tentando passar os arquivos do comando find para adb push da seguinte forma:

find . -name "test0[4-8]*.py" -exec adb push {} \; /storage/emulated/0/

recebo um erro      find: paths must precede expression: /storage/emulated/0/

Como posso especificar que /storage/emulated/0/ não é um caminho.

    
por R Singh 28.04.2016 / 22:17

2 respostas

1

O ponto-e-vírgula indicando o fim do comando exec deve estar no final do predicado exec :

find . -name "test0[4-8]*.py" -exec adb push {} /storage/emulated/0/ \;
    
por 28.04.2016 / 22:27
1

Estou assumindo / storage / emulado / 0 / é o caminho no dispositivo remoto? Por isso deve fazer parte do comando, o seu \; vem antes disso.

find . -name "test0[4-8]*.py" -exec adb push {} /storage/emulated/0/ \;

se isso ainda lhe der problemas, coloque "/" para cada "/" para escapar deles. Efetivamente tudo, de -exec para \; é enviado para um sub shell com {} substituído pelo caminho para cada arquivo encontrado.

    
por 28.04.2016 / 22:29

Tags