Como localizar e copiar arquivos com espaços?

0

Estou tentando encontrar mp3 arquivos em quaisquer subdiretórios e copiá-los, por exemplo, no diretório atual. Aqui está o comando que eu tentei:

find . -name *.mp3  -ls | gawk '{printf("cp %s .\n", $11);}'

O comando find lista todos os arquivos que escaparam corretamente, mas gawk parece ter problemas com ele. O comando find lista, por exemplo, o seguinte arquivo

8132326 7392 -rw-r--r--   1 alexander alexander  7566180 Nov 27 20:22 ./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3

enquanto o comando gawk vê como $11 a string

./For

em vez de

./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3

Por que isso? E como lidar com isso corretamente (com ou sem gawk )?

    
por Alex 02.12.2013 / 21:55

1 resposta

3

O comando correto é

 find /folder/to/be/searched -type f -name '*.mp3' -exec cp "{}" /target/folder \;

É mais simples, portanto, menos chances de erros. Única coisa: lembre-se de usar caminhos absolutos, não relativos.

    
por 02.12.2013 / 22:03