AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1840420
Accepted
william
william
Asked: 2024-04-26 12:49:19 +0800 CST2024-04-26 12:49:19 +0800 CST 2024-04-26 12:49:19 +0800 CST

É seguro excluir ou mover um arquivo imediatamente após copiá-lo? [Windows especialmente]

  • 772

Eu entendo que às vezes, ao copiar um arquivo, o sistema irá 'armazenar em cache' o processo de cópia ou 'atrasar' o processo: ou seja, leva um pouco mais de tempo para o processo de cópia ser realmente concluído do que uma interface de usuário de 'processo concluído' - notificação levaria você a acreditar. É por isso que não é bom remover imediatamente os discos rígidos externos imediatamente após copiá-los, mas esperar um pouco antes de fazer isso.

Então, agora digamos que eu copie um arquivo para outra pasta dentro do mesmo Drive ou para um Drive completamente diferente. Agora, movo imediatamente esse arquivo de origem para outra pasta, ou então excluo-o (movo-o para a lixeira); isso colocaria em risco o arquivo de origem ou sua cópia recém-criada, no que diz respeito à corrupção de arquivos? Ou melhor, o computador possui um sistema para se proteger contra essa eventualidade, impedindo automaticamente qualquer movimentação ou exclusão real do arquivo de origem antes que a cópia seja totalmente concluída?

windows-11
  • 3 3 respostas
  • 531 Views

3 respostas

  • Voted
  1. Best Answer
    Thorsten Schöning
    2024-04-26T14:31:07+08:002024-04-26T14:31:07+08:00

    Então, agora digamos que eu copie um arquivo para outra pasta dentro do mesmo Drive ou para um Drive completamente diferente.

    Essa é uma distinção um tanto importante, porque unidades diferentes significam sistemas de arquivos diferentes, provavelmente com semântica de armazenamento, comportamento de cache, etc. diferentes. Portanto, vamos manter as coisas mais fáceis e permanecer no mesmo sistema de arquivos.

    Ou melhor, o computador possui um sistema para se proteger contra essa eventualidade, impedindo automaticamente qualquer movimentação ou exclusão real do arquivo de origem antes que a cópia seja totalmente concluída?

    Como seu foco é o Windows, a resposta é sim. O Windows implementa uma abordagem em que os aplicativos que fazem algo com arquivos bloqueiam exclusivamente esses arquivos por padrão, para que nenhum outro aplicativo possa acessá-los. O primeiro aplicativo a fazer algo com um arquivo precisa decidir o que outros aplicativos podem fazer, ler, escrever, excluir, etc. Sem essa decisão explícita, outros aplicativos não podem fazer nada, incluindo mover um arquivo durante, por exemplo, um processo de cópia. Lembre-se de que o processo de cópia é um aplicativo, tentando mover o arquivo ao mesmo tempo, outro etc. Para obter detalhes, dê uma olhada em CreateFileW e seu argumento dwShareMode.

    Portanto, embora exista uma rede de segurança disponível, ela provavelmente não é necessária: o cache do sistema de arquivos é tratado (principalmente) de forma transparente pelos sistemas operacionais e de arquivos de qualquer maneira. O objetivo geral é que usuários e aplicativos não precisem lidar com detalhes, o que inclui coisas como copiar e saber quando os dados são realmente copiados para operação posterior. Os aplicativos podem estar interessados ​​em tais detalhes e, por exemplo, podem usar comandos de liberação, que informam ao sistema operacional ou de arquivos que eles gravam o cache nos dados de algum arquivo agora e o aplicativo chamador aguarda até que isso termine. Mas na maioria dos casos isso não é necessário.

    Isso inclui a movimentação após a cópia: Se apenas o cache do sistema de arquivos estiver envolvido e não, por exemplo, o arquivo ainda estiver bloqueado pelo próprio processo de cópia, por exemplo, o Windows Explorer, você poderá mover o arquivo mesmo que nem todos os dados estejam gravados no disco ainda . Isso ocorre porque a maioria dos sistemas de arquivos não associa diretamente os dados reais dos arquivos aos seus nomes ou caminhos de arquivos, mas trata ambos de forma independente. Assim, os dados são armazenados em algum lugar, em um local diferente, um nome de arquivo é armazenado fazendo referência ao caminho pai e também aos dados. Portanto, quando o próprio nome do arquivo é alterado ou movido para algum outro diretório, ele simplesmente mantém as referências aos dados reais e o sistema operacional e o sistema de arquivos podem, ao mesmo tempo, continuar a liberar seus caches para o local ao qual já estão associados. o nome do arquivo.

    https://en.wikipedia.org/wiki/Inode

    Os sistemas de arquivos modernos nem precisam se preocupar ou saber de antemão quantos dados precisam ser gravados, eles estão apenas alocando blocos de dados em algum lugar seguindo certas regras e associando cada bloco alocado ao objeto de nome de arquivo já existente.

    https://en.wikipedia.org/wiki/Extent_(file_systems)

    • 2
  2. u1686_grawity
    2024-04-26T15:10:34+08:002024-04-26T15:10:34+08:00

    isso colocaria em risco o arquivo de origem ou sua cópia recém-criada, no que diz respeito à corrupção de arquivos? Ou melhor, o computador possui um sistema para se proteger contra essa eventualidade, impedindo automaticamente qualquer movimentação ou exclusão real do arquivo de origem antes que a cópia seja totalmente concluída?

    Nenhuma das acima. O processo de cópia de arquivo não depende do original neste momento; ele já leu todo o arquivo original e "escreveu" todos os dados no novo arquivo, portanto, a notificação da interface do usuário de 'processo concluído' está dizendo a verdade.

    O que realmente está sendo armazenado em cache (bufferizado) são apenas as operações de gravação – há uma camada de cache completamente separada que não tem nada a ver com cópia, mas sim com gravação em disco em geral. Qualquer gravação de arquivo, seja copiando de um arquivo para outro ou apenas salvando um documento, é primeiro armazenada em buffer na memória pelo sistema operacional e só depois liberada para o armazenamento físico. (Ou seja, os dados já estão "no" arquivo até onde os programas os veem, mas ainda não estão no arquivo no disco .)

    • 1
  3. harrymc
    2024-04-26T19:01:44+08:002024-04-26T19:01:44+08:00

    Há uma pequena diferença entre mover-se dentro do mesmo sistema de arquivos (partição) ou entre sistemas de arquivos diferentes.

    Para mover dentro do mesmo sistema de arquivos : Os dados do arquivo no disco são totalmente separados de seus metadados dentro da tabela de arquivos. Os metadados incluem um ponteiro para os dados, mas são independentes deles, no sentido de que a entrada do arquivo pode ser movida para outra pasta sem mover os dados.

    No seu caso, o que pode acontecer é que os dados do arquivo ainda não tenham terminado de ser movidos e ainda estejam dentro do cache, enquanto a entrada do arquivo é movida para outro lugar dentro do mesmo sistema de arquivos. Nenhum problema foi encontrado e os dados do arquivo continuarão a ser liberados do cache, enquanto o arquivo já estiver localizado em sua nova pasta (inclusive quando esta for a Lixeira).

    Para mover dentro de diferentes sistemas de arquivos : o Windows tentará copiar os dados do arquivo para o novo disco, criar e inserir a nova tabela de arquivos e, finalmente, excluir o arquivo no disco de origem.

    Ao copiar os dados, cada bloco de origem será lido e copiado. Os dados de origem podem ser lidos do cache de memória, se ainda não tiverem sido gravados em seu lugar no disco de origem, e depois copiados para o novo disco. É bem possível, por exemplo, que os mesmos dados sejam encontrados duplicados duas vezes no cache, onde cada cópia é destinada a ser gravada em um disco diferente.

    Quando a operação de cópia for concluída no Windows, mesmo que nem todos os blocos tenham sido gravados em ambos os discos, o arquivo de origem será excluído. Isso invalidará todos os seus blocos no cache de memória, de modo que os blocos não gravados no arquivo de origem serão simplesmente cancelados. Nesse caso, pode acontecer que excluir ou mover um arquivo imediatamente depois seja, no final, mais eficiente no disco do que esperar que a gravação termine antes de realizar a operação.

    Para excluir imediatamente após a cópia : conforme descrito acima, isso cancelará todos os blocos não gravados que ainda estão presentes no cache da memória, portanto, tais blocos nunca serão gravados no disco.

    • 1

relate perguntas

  • Erros encontrados ao carregar as configurações do usuário no Windows Terminal no Windows 11

  • TPM externo baseado em USB?

  • Por que o Windows 11 não é compatível com meu hardware?

  • O que acontece se eu habilitar o TPM em um sistema operacional Windows em execução/já instalado?

  • Um Macbook Pro M1 pode executar a versão ARM do Windows 11 e compilar projetos do Visual Studio .Net 4+?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve