É possível rsync
copiar vários arquivos de um diretório de origem para um diretório de destino com vários subdiretórios que não existem? Ou use install -D
vários arquivos em um diretório que não existe?
Também olhei, cp --parents
mas usei o nome do diretório de origem. É possível cp
selecionar um diretório de destino que não existe e copiar todos os arquivos para ele depois de criado?
Eu tenho esta pergunta:Copie um arquivo para um diretório que não existe com apenas um comando (Linux) Fundir com:Como posso copiar um arquivo e criar os diretórios de destino ao mesmo tempo?
Mas as soluções para copiar um arquivo, vejo algo como:
cp /etc/*.conf ~/mytest/
onde mytest não existe e /etc/*.conf
é mais de um arquivo. É possível com cp
e com apenas um comando ser melhor?
Responder1
Tente com rsync
o comando:
rsync -av /etc/*.conf ~/mytest
Em geral você pode usar
rsync -av In/*conf Out/NewDir
A situação anterior é:
In
├── d1.conf
├── d2.conf
├── d3.txt
├── Sub_In_1
└── Sub_In_2.conf
└── SubIn2.Files
Out
└── Out_OldFiles
Após o comando será
Out
├── NewDir
│ ├── d1.conf
│ ├── d2.conf
│ └── Sub_In_2.conf
│ └── SubIn2.Files
└── Out_OldFiles
Neste caso você seleciona não apenas arquivos comuns, *.conf
mas até diretórios Sub_In_2.conf
. Você copiará toda a seleção (arquivos e diretório) em um diretório recém-criado NewDir
abaixo do Out
diretório.
A opção -a
inclui até mesmo o -r (recurso aos diretórios)
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
Notas
- A
rsync
opção recursiva é-r(e não-R). - Em
cp
-r e -R correspondem à mesma opção. - A opção
-v
não é necessária, fornece apenas mais algumas informações. - Com
rsync
você pode ser usado até mesmo entre 2 computadores diferentes usandohost1
o host de origem ehost2
o host de destino.
O último comando é
rsync -av host1:InputDir host2:OutputDir/NewDirThatDidNotExists