“localizar” com várias condições para copiar em outro disco rígido usando babun

0

Estou tentando copiar imagens enormes em um disco rígido velho e bagunçado que não consigo abrir no Explorer de arquivos do Windows (não pergunte ...) e tenho de procurar ajudar minha querida vovó. Eu posso fazer, navegar nele com Babun (shell do Windows incrível).

Até agora eu já experimentei comandos:

{ veronique }  » find /cygdrive/h/Documents\ and\ Settings -name '*.jpeg|png|JPEG' -exec cp '{}' /cygdrive/f/tof \;

{ veronique }  » find /cygdrive/h/Documents\ and\ Settings -name '*.(jpeg|png|JPEG)' -exec cp '{}' /cygdrive/f/tof \;

Sem resultados ... Há algo que eu esteja faltando?

    
por user274630 07.02.2018 / 00:07

2 respostas

0

Eu não acho que encontre as ferramentas certas para isso, rsync provavelmente seria melhor, mas se você está feliz em ter todos os arquivos em um diretório, find irá fazê-lo, mas você precisa remover as aspas simples ao redor do {} na linha de comando, pois isso significa usar um literal {} em vez do nome do arquivo.

    
por 07.02.2018 / 01:30
1
O predicado

find's -name usa uma glob, não uma expressão regular.

Se você quiser usar expressões regulares com find , use -regex (ou -iregex para não diferenciar maiúsculas de minúsculas). Por exemplo:

find ... -regextype egrep -iregex '.*\.(jpe?g|png)$' ...

Como alternativa, use parêntesis em OR em vários predicados -name ou -iname , por exemplo:

find ... \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) ...

OBSERVAÇÃO: Os parênteses precisam ter escape de barra invertida para impedir que o shell os interprete como uma solicitação para um sub-shell, resultando em -bash: syntax error near unexpected token (''

    
por 07.02.2018 / 01:56

Tags