Como usar o número mínimo de comandos para copiar todos os arquivos .txt de todos os subdiretórios para um diretório?

1

Eu tenho mais de 90 subdiretórios e dentro de cada um, haverá vários arquivos .txt.

O que eu preciso fazer é copiar todos os arquivos txt para um único diretório.

Como posso fazer isso?

    
por Jackson Tale 23.08.2014 / 17:26

2 respostas

3

use o comando:

find . -name "*.txt" -exec cp {} /path/to/destination \;
    
por 23.08.2014 / 17:30
4

Para evitar a execução de um cp por arquivo (como acontece com -exec cp {} /dest \; ):

find . -name '*.txt" -type f -exec sh -c '
  exec cp "$@" /path/to/destination' sh {} +

Ou com o GNU cp :

find . -name '*.txt" -type f -exec cp -t /path/to/destination {} +

com zsh :

cp ./**/*.txt(.) /path/to/destination

Ou

cp ./**/*.txt(D.) /path/to/destination

Se você deseja incluir arquivos ocultos (ou arquivos em diretórios ocultos) como em find solutions.

    
por 23.08.2014 / 19:46