Estou tentando copiar fotos enormes em um disco rígido velho e bagunçado que não consigo abrir no Windows File Explorer (não pergunte ...) e tenho que tentar ajudar minha querida avó. Eu posso fazer, navegue nele com Babun (incrível shell do Windows).
Até agora eu tentei comandos:
$ find /cygdrive/h/Documents\ and\ Settings -name '*.jpeg|png|JPEG' -exec cp '{}' /cygdrive/f/tof \;
$ find /cygdrive/h/Documents\ and\ Settings -name '*.(jpeg|png|JPEG)' -exec cp '{}' /cygdrive/f/tof \;
Sem resultados... Há algo que estou perdendo?
find's
-name
predicado usa um 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:Como alternativa, use parênteses para OR múltiplo
-name
ou-iname
predicados, por exemplo:NOTA: Os parênteses precisam ter uma barra invertida para evitar que o shell os interprete como uma solicitação para um subshell, resultando em
-bash: syntax error near unexpected token
('`Eu não acho que find seja a ferramenta certa para isso, rsync provavelmente seria melhor, mas se você está feliz por ter todos os arquivos em um diretório, find fará isso, mas você precisa remover as aspas simples em torno do {} na linha de comando, pois isso significa usar um {} literal em vez do nome do arquivo.