No Linux, podemos simplesmente fazer:
cp -pr directory
Como fazer isso no Windows? Isso pode ser feito no Windows Explorer? Alguma sugestão de ferramenta GUI?
Seria melhor se eu pudesse manter as permissões NTFS e o tempo de criação / modificação / acesso. No mínimo, preciso preservar a data de modificação dos arquivos e dos diretórios. A cópia do Windows Explorer não preserva a data de modificação dos diretórios.
windows
file-management
netvope
fonte
fonte
robocopy c:\folderA c:\folderB /mir /it
é tudo o que você precisa. Observe que isso excluirá completamente c: \ folderB e criará uma nova c: \ folderB que espelha c: \ folderA.Respostas:
Não há uma maneira simples de fazer isso no Windows. Existem vários programas que afirmam poder preservar as datas de criação dos arquivos.
Aqui estão alguns programas que podem fazer o truque http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html (link quebrado; não na Wayback Machine).
Usando apenas o Windows Explorer não é possível. Se você olhar a documentação para a função CopyFile, CopyFile (winbase.h) , verá que ela evita o assunto. Mas a função CopyFile (Windows Developer Preview) (um arquivo de 2012 da mesma URL) diz:
fonte
O RoboCopy pode preservar o mtime para diretórios com a opção / DCOPY: T, mas isso funciona apenas no Vista e em versões mais recentes. Também pode preservar ACLs. Como alternativa, o FastCopy pode ser configurado para preservar mtimes de diretório, ACLs e ADSes .
fonte
/mir
?/mir
remover os dados da pasta de destino, você ainda precisava/dcopy:t
preservar o diretório mtimes e/copyall
preservar mais do que apenas os registros de data e hora do arquivo.... ou você pode simplesmente criar um arquivo zip (com o método de compactação definido como apenas "Store") e depois descompactar os arquivos onde deseja copiá-los. Os atributos de data / hora são iguais aos arquivos originais.
fonte
Ferramenta de linha de comando Robocopy (vem com a maioria das versões do windows)
Na minha máquina com Windows 10, ele está localizado em
C:\Windows\System32
Na Wikipedia , ele pode ser usado com o seguinte conjunto de opções para preservar registros de data e hora de arquivos e diretórios, além de outros atributos:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
preservar os carimbos de data / hora dos diretórios originais (requer a versão XP026 ou posterior)/E
: Copie diretórios recursivamente, incluindo diretórios vazios/R:0
: não tente novamente os arquivos bloqueados (o número padrão de tentativas em cópias com falha é de 1 milhão),/COPYALL
: Copie todas as informações do arquivo(equivalente a
/COPY:DATSOU
, em queD
= Dados,A
= Atributos,T
= Data e hora do arquivo ,S
= Segurança = ACLs NTFS,O
= Informações do proprietário,U
= Informações de auditoria),Se você deseja preservar apenas os carimbos de data e hora do diretório, mas não deseja copiar subdiretórios vazios e não deseja que outros atributos sejam preservados, você pode usar:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
onde
/S
copia subdiretórios não vaziosPara ver a sintaxe completa, digite
robocopy /?
em um prompt de comando ou veja estas postagens no blog: https://ss64.com/nt/robocopy.html e https://techjourney.net/robocopy-syntax-command-line -switches-and-examples /Um exemplo de comando que executei recentemente:
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Observe como a exclusão de 2 subdiretórios exige que o
/XD
sinalizador seja usado duas vezes. Além disso, a segunda exclusão de diretório usa aspas porque existem espaços no nome do diretório.Por fim, você pode adicionar o
/L
sinalizador para testar o comando antes de realizá-lo. Dessa forma, você pode verificar se ele não copiará (ou removerá) nenhum diretório / arquivo que você não deseja e que não há erros no seu comando.Edit: gotcha ao copiar de um diretório raiz (também conhecido como unidade) para uma pasta (diretório não raiz)
Depois de executar o comando de exemplo acima, o diretório não estava visível! (Mesmo que
show hidden files
eshow system files
foram verificadas em Windows 10!) O seguinte comando como por https://serverfault.com/a/455029/399723 fixo isto:Como alternativa, adicionar a opção
/A-:SH
"desativa o atributo oculto dos arquivos do sistema" pode impedir que o diretório fique oculto em primeiro lugar, conforme https://serverfault.com/a/565804/399723 . Consulte também https://ss64.com/nt/robocopy.html .Essa discussão lança mais luz sobre essa opção como solução.
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Outro software:
Como alternativa, você pode baixar uma versão GUI do robocopy, se não desejar usar a linha de comando.
Outro utilitário do Windows é o XCopy , embora esteja incluído no Windows 10, está sendo preterido. Veja o link para dicas.
A página da Wikipedia para RoboCopy (vinculada no início desta postagem) lista outros softwares que podem ser usados.
fonte
Sincronize! 3.5 mantém todos os registros de data e hora (arquivos e pastas, modificação e criação). É o único software que conheço no Windows XP que faz isso perfeitamente, além do Robocopy, e já tentei muitos. Cuidado, porém, ele pode produzir arquivos corrompidos com arquivos de origem baixados usando software como FlashGet ou Orbit Downloader (os arquivos resultantes têm o mesmo tamanho, mas apenas 25kB são realmente copiados - o restante é preenchido com zeros). Perguntei ao criador do software se ele poderia descobrir o porquê, mas ele não tinha ideia; Eu acho que isso tem a ver com o download de arquivos em pacotes pequenos (com o objetivo de otimizar a velocidade) e com a partição de dados muito fragmentada.
O Robocopy XP026 está realmente incluído no Windows Vista, mas funciona no Windows XP. Pesquise "Robocopy XP026" ou posso enviar o arquivo aqui, pois não é muito fácil de encontrar. Ou você pode instalar a GUI do Robocopy e procurar o
robocopy.exe
arquivo na pasta System32, para usá-lo na linha de comando. O arquivo que tenho é 208kB e o número da versão é 5.1.2600.26.Parece haver um bug no "modo de backup", no entanto:
A versão XP027 da Robocopy aparentemente não possui mais esse bug, mas não funciona no Windows XP.
fonte
O RoboCopy deve ser capaz de fazê-lo com a opção COPYALL. Você pode pegar a versão da GUI do Microsoft Technet .
fonte
O FastCopy pode fazer isso e é gratuito.
fonte
Não tenho certeza de qual opção mantém a data do arquivo, mas isso funciona. Depois, fecho o diretório C: \ temp \ Pics, que também mantém as datas dos arquivos, conforme mencionado anteriormente.
fonte
A maneira mais simples para mim, até agora, é o método "enviar para". Ele não precisa de aplicativos externos. Na minha experiência, ele mantém todos os atributos do arquivo original.
O método que eu usei antes, era o método de pasta de compressão / zip. Embora isso certamente leve mais tempo, já que os arquivos não são apenas copiados, mas processados e compactados, ao compactar e descompactar.
%appdata%\Microsoft\Windows\SendTo
ou.
C:\Users\_______\AppData\Roaming\Microsoft\Windows\SendTo
Adicione um atalho à pasta em que deseja copiá-los e o item aparecerá no seu
sendto
menu quando você clicar com o botão direito do mouse no arquivo que deseja copiar.fonte
xcopy Source Destination /kes
. (Ok
sinalizador permite preservar o carimbo de data / hora da modificação, mas a data de criação não é preservada). O método de compactação para compactar (ou rar) é um bom método, mas geralmente leva muito tempo.É simples mover pastas e diretórios e ainda preservar a data de criação. Apenas segure Shifte arraste a pasta para o novo local (comando move). A data de modificação será a data atual, mas a data de criação manterá a data original.
fonte
Maneira simples de mover pastas e preservar Data e hora da criação, use esses utilitários
http://lantechsoft.com/data-copy.html
Outro onde ele pode preservar datas enquanto copia arquivos.
http://technocomsolutions.com/data-copy-tool.html
fonte
O xcopy funciona bem para isso. Basta especificar o sinalizador / k para copiar atributos.
Sintaxe
xcopy Origem [Destino] [Parâmetros opcionais]
O comando xcopy pode copiar um ou mais arquivos ou árvores de diretório de um local para outro. O comando xcopy está incluído em todas as versões do Windows, do Windows 95 ao Windows 8.
fonte
/K
parâmetro e ele não preservou as datas de criação.Eu alcanço isso com
rsync -avu --modify-window = 3602 diretório_de origem / diretório_de_domínio /
(isso é realmente usado como uma ferramenta de sincronização de um diretório para outro espelho e a opção de janela de tempo é evitar problemas quando os sistemas Windows movem os relógios 1 hora para o horário de verão etc. em comparação com os sistemas Linux)
no ambiente cygwin dentro do windows ou em uma máquina virtual linux dentro do windows com unidades windows montadas (por exemplo, com o virtualbox)
O cygwin e o virtualbox são gratuitos e permitem que você tenha, em menor ou maior grau, a funcionalidade linux no Windows - ambos exigem um pouco de configuração - particularmente o virtualbox, mas têm muitos benefícios.
Meu próprio problema era que os arquivos tinham a hora correta, mas os diretórios não. O rsync classificou as datas nos diretórios e as datas nos arquivos.
fonte
Este comando copia o mesmo registro de data e hora para arquivos. Observe que não faz exatamente o mesmo tempo de carimbo para as próprias pastas. Observe também que coloquei aspas em torno da origem (Temp1) e do destino (Temp2). Isso é feito caso haja espaços nos caminhos. Não tenho espaços, mas achei que deveria incluí-lo nos piores cenários.
Para manter os timestamps iguais para as pastas:
robocopy / E / cópia: DAT / dcopy: DAT "C: \ Temp1" "c: \ Temp2"
fonte