Como você pode mover (ou copiar) todos os arquivos de um determinado tipo para um diretório no Unix?

Como você pode mover (ou copiar) todos os arquivos de um determinado tipo para um diretório no Unix?

Ainda não estou muito familiarizado com todos os truques do grep/find/awk/xargs, então seja paciente comigo =]

Eu tenho um tipo de arquivo específico, como *.xxx, em locais aleatórios em um determinado diretório. Como posso encontrar todos esses arquivos e movê-los para uma pasta no meu diretório pessoal no Unix (que pode ainda não existir)?

Responder1

Use findcom a execopção, mas primeiro crie a pasta de destino.

mkdir -p /home/somewhere/else
find /somewhere -iname "*.xxx"

Isso listará tudo o que seria movido. Agora, se você tiver certeza de que esses são os arquivos que deseja mover, execute o seguinte:

find /somewhere -iname "*.xxx" -exec mv '{}' /home/somewhere/else/ \;

Na execlinha, '{}'será substituído pelo nome real do arquivo e será movido para o destino. Da mesma forma, para copiar, basta trocar mvcom cp. O \;é necessário para encerrar o comando.

Se desejar uma confirmação antes de cada operação de arquivo que sobrescreva um arquivo já existente, você pode adicionar a -iopção após mvou cp, respectivamente.

Não há necessidade de grepe xargsseus gostos. Isso complicaria desnecessariamente as coisas.

informação relacionada