Copiando um diretório mantendo sua permissão

3

Eu localizei este artigo da base de conhecimento que explica o título do tópico . Mas o meu problema é que quando eu uso o comando "xcopy"; apenas copia o conteúdo dentro de um diretório para o novo local, mas não o diretório inteiro, como nas distribuições linux.

Por exemplo: Se eu digitar "xcopy c: \ folder1 d: \ newfolder"; Em seguida, copia o conteúdo dentro de c: \ folder1 para d: \ newfolder, mas não na pasta1. Eu estou quieto confuso como em como eu vou conseguir isso. Por favor me avise sobre isso.

Obrigado antecipadamente.

    
por AzkerM 02.01.2014 / 11:59

3 respostas

7

Eu finalmente consegui alcançar este & Eu pensei que poderia ser isso poderia ajudar os outros a realizar essas necessidades. Bem, como mencionei anteriormente, consultei este artigo da base de conhecimento e usado abaixo comandos para conseguir sem qualquer perda de DATA's

Eu não consegui copiar o diretório em si, mas consegui copiar todo o conteúdo dentro dele sem perder a permissão. Então aqui está como

Primeiramente, criei uma pasta apenas para copiar todo o conteúdo dentro do diretório de origem & Eu usei xcopy para copiar todos os arquivos e pastas, mantendo suas permissões.

xcopy c:\source_folder_name e:\destination_folder_name /O /X /E /H /K
  • / E - Copia pastas e subpastas, incluindo as vazias.
  • / H - Copia arquivos ocultos e de sistema também.
  • / K - Copia os atributos. Normalmente, o Xcopy redefine os atributos somente leitura.
  • / O - Copia a propriedade do arquivo e as informações da ACL.
  • / X - Copia configurações de auditoria de arquivos (implica em / O).

Isso fará sem mais perguntas. E uma vez feito, notei que havia uma diferença na contagem de arquivos entre o copiado e a origem. Portanto, usei robocopy para garantir que todos os arquivos estejam no lugar, criando um arquivo de log durante o espelhamento.

Supondo que seu caminho de prompt de comando é C: / ..

robocopy c:\source_folder_name e:\destination_folder_name /MIR /LOG:log.txt
  • / MIR - Espelhe os arquivos e copie / modifique / exclua entre a origem e o destino.
  • / LOG - Cria um arquivo de log do processo

Observação: o arquivo de log será criado no local em que a unidade ou o caminho exibido no prompt de comando. Por exemplo: se o seu C: / , o log estará lá).

Uma vez que robocopy fez sua parte, uma vez verifiquei as propriedades para ter certeza de que ambas estão contando. Celestial sim! foi computando e eu verifiquei o log para ver qual arquivo não foi copiado. Como eu suspeitava, era apenas thumbs.db & alguns dos outros arquivos que foram omitidos.

P.S .: Esteja ciente quando estiver usando o robocopy para espelhamento, pois ele pode remover / modificar os arquivos de origem, por qualquer motivo, se não for compatível com o destino (muito raro, mas pode acontecer). Eu usei porque a contagem do campo no novo destino era menor que a origem. Além disso, eu tive uma cópia do arquivo de origem apenas para evitar qualquer perda de dados. Além disso, ambos os comandos serão executados sem causar nenhum problema.

Espero que isso ajude!

    
por 18.01.2014 / 12:12
0

A única maneira é especificar folder1 novamente. / I switch irá parar o XCOPY fazendo perguntas bobas sobre se folder1 é um arquivo ou um diretório. / E para reciclar.

xcopy /I /E c:\folder1 d:\newfolder\folder1

Editar: eu não li o artigo anterior da KB, então você pode ter um problema com permissões, o que possivelmente anula o ponto. Nesse caso, Lawrence pode ter um ponto.

    
por 02.01.2014 / 13:14
0

Sim, a melhor opção é especificar o nome do arquivo novamente ... Por exemplo Eu preciso copiar a pasta C:\Inetpub para outra pasta ou unidade.

XCOPY "C:\Inetpub" "C:\DDRIVE\Inetpub" /o /x /e /h /k

Quando você pressionar Enter, ele perguntará "Inetpub Especifique um nome de diretório ou um nome de arquivo no destino?". Pressione F para o arquivo e pressione D para o diretório. Você pode pressionar D aqui. Isso criará um novo diretório e copiará todas as subpastas e arquivos com as mesmas permissões da fonte.

    
por 17.07.2015 / 10:51