Eu tenho projetos Eclipse e o arquivo ".project" neles, a estrutura de diretórios se parece com ' myProject/.project
'. Quero copiar esses arquivos '.project' para outro diretório, mas quero que o nome do diretório anexo seja preservado.
Digamos que eu tenho ' a/myProject/.project
', quero copiar ' myProject/.project
' para ' b
', para que seja ' b/myProject/.project
', mas ' b/myProject
' não existe. Quando tento um:
cp -r ./myProject/.project ../b
copia apenas o arquivo '.project', sem o diretório 'myProject'. Por favor informar.
Primeiro use
mkdir -p
para criar a pasta de destino com a criação de caminho pai recursivo. Em seguida, copie o conteúdo para a pasta de destino:fonte
Veja
man cp
para mais informações.fonte
Eu uso o cpio em combinação com o find. Explicação aqui .
Exemplo para o seu caso de uso:
Este comando localiza todos os arquivos
/a/myProject/.project/
e copia, preservando o caminho, todos os arquivos contidos nele.fonte
Além disso
--parents
, também é necessário adicionar a-r
opção para evitar omitir a cópia da maioria dos diretórios internosPortanto, o comando que funciona para mim é
fonte
Esteja ciente de que parece haver um erro no
cp --parents
. Quando eu usei--parents
junto--preserve=all
, os atributos de data e hora de ALGUNS diretórios de destino NÃO foram preservados.O seguinte link parece confirmar que este é um erro: bug # 8767: cp: --preserve = all não funciona para os pais quando --parent é usado .
Portanto, parece que você não pode confiar nos atributos que estão sendo preservados ao usar
--parents
junto com, como--preserve=all
ou-p
.fonte
Eu usei
--parents
com ocp
comando e trabalhei perfeitamente comigo. para mais detalhes, use sempre o manual. Obrigado.fonte