Estou usando o Ubuntu 24.10 e tenho um diretório contendo arquivos e subdiretórios:
main-dir
file1
file2
file3
subdir1
file1-1
file1-2
subdir1-1
file1-1-1
file1-1-2
subdir1-2
file1-2-1
subdir1-2-1
...
E eu tenho uma árvore de diretórios contendo arquivos "corrigidos":
corrections-dir
file2
subdir1
file1-1
subdir1-1
file1-1-1
subdir1-2
file1-2-1
Quero mover recursivamente e sobrescrever todos os arquivos de corrections-dir
para main-dir
. No entanto, o mv
comando não parece ter uma opção recursiva. Sei que poderia fazer isso:
cp -R corrections-dir main-dir
rm -r corrections-dir
Mas os arquivos são grandes e esse comando demora e grava desnecessariamente em novos setores do meu SSD (diminuindo assim sua vida útil).
Existe uma maneira de usar mv
recursivamente?
Você pode usar
find
para fazer operações recursivas.(não testado)
Este comando não lida com o caso de subdiretórios que existem em
corrections-dir
mas não estão emmain-dir
. Presumo que isso não fazia parte dos requisitos da pergunta.Nota: Eu uso
cd /path/to/corrections-dir
withfind .
em vez defind /path/to/corrections-dir
porque querofind
passar nomes de arquivos relativos em{}
.