Usando um terminal Linux / Unix para copiar muitos arquivos para um novo local

1

Estou tentando usar o terminal a Linux para copiar muitos arquivos para um novo local. Eu cansei do comando:

sudo locate -i arquivo_I_want | xargs cp $ 1 / place_I_want_everything_copied_to /

Qual, dá um erro. Qual é a maneira correta de lidar com isso?

    
por InBetween 03.02.2012 / 17:56

1 resposta

1

xargs não funciona dessa maneira. Não usa $ 1. Normalmente, apenas postpends o argumento para o final da lista de parâmetros. Mas, nesse caso, não funcionará, já que é o destino, não o destino, e um parâmetro à direita não é o necessário.

Confira o -i flag para xargs, ele permite que você tenha uma substituição. O padrão é usar {}, acho que é consistente com find

sudo locate -i *file_I_want* | xargs -i cp {} /place_I_want_everything_copied_to/

O comentário do @javano também é uma resposta, embora quebrasse se houvesse espaços nos nomes de arquivos (embora eu acredite que espaços também quebrariam o uso de xargs acima)

    
por 03.02.2012 / 18:53