use o comando:
find . -name "*.txt" -exec cp {} /path/to/destination \;
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?
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.