Como impedir que uma pasta seja excluída inadvertidamente por mim mesma?

41

Eu tenho uma pasta muito importante na minha área de trabalho. Ocasionalmente, limpo minha área de trabalho e estou muito preocupado com a possibilidade de excluir a pasta mencionada inadvertidamente. Existe uma maneira de evitar esse desastre sem limitar minhas operações de leitura e gravação frequentes no conteúdo da pasta? Nota: Não me importo de excluir o conteúdo dentro da pasta, um por um de vez em quando, mas a própria pasta é importante para mim. Se for excluído, perco muitos esforços.

codezombie
fonte
69
A área de trabalho é o pior lugar para armazenar dados críticos, armazená-los em outro lugar e criar um atalho para eles na área de trabalho.
Moab
2
Sua prática comum, um atalho apenas leva à pasta, tudo funcionará.
Moab
3
@ JasonStack provavelmente, mas não necessariamente. Se você mover a pasta e tiver algum outro programa ou documento que suponha que a pasta esteja na sua área de trabalho, isso poderá quebrar alguma coisa. Pode acontecer se você tiver arquivos com links para outros arquivos, por exemplo. Se isso não se aplicar ao seu conteúdo, você provavelmente não terá problemas.
barbecue
8
Não faça isso. <hr /> Faça backups. Sempre faça backups . Em mídia externa. Sempre faça backups em mídia externa. Além disso, você deve verificar o recurso Histórico de arquivos / versões anteriores do Windows. É bem útil.
forloop 24/09/15
1
“Se agora mover a pasta para algum lugar e criar um atalho com o mesmo nome na área de trabalho, tudo depende da pasta continuará funcionando normalmente?” @JasonStack Respondi isso na minha resposta atualizada abaixo. Eu gostaria de salientar que as junções foram introduzidas pelo motivo expresso de poder mover as coisas para um volume físico diferente sem afetar nada.
JDługosz 24/09

Respostas:

112

Não tente evitar o inevitável. Use backups e controle de versão.

Você pode negar a si mesmo a permissão Excluir . A exclusão de arquivos e pastas nesse diretório é uma permissão separada que você também pode desativar quando necessário.

CodeCaster
fonte
26
Bom grito sobre backups + conselhos sobre controle de versão.
bertieb 23/09/15
6
@bertieb é crucial. O OP não precisa excluir acidentalmente a pasta para perder o trabalho, a unidade pode morrer amanhã.
CodeCaster 23/09
11
Acordado. A execução sem backups é apenas perda de dados em algum momento no futuro - quando, não se. Agora, se você vai me desculpe scurries fora para backups double-check
bertieb
7
Como profissional de TI, use backups e controle de versão para todos os arquivos importantes, especialmente para clientes ou sua empresa. Por favor por favor por favor.
precisa saber é o seguinte
8
Quais são as chances disso acontecer, você pergunta? MUITO BOM BOM, eu mesmo apaguei acidentalmente uma pasta cheia de coisas importantes no final do ano passado que não consegui voltar. Importante chamada de ativação, agora faço backup fervorosamente do meu trabalho no GitHub, espelhado no BitBucket e também espelhado em um disco rígido portátil. TOMAR DE UM SOBREVIVENTE, CRIANÇAS, NÃO DEIXE ACONTECER COM VOCÊ. Ouça esses caras, faça seu material de volta. A SÉRIO.
51

Existe uma solução melhor para o seu problema: mova a pasta para um local mais apropriado (por exemplo,% USERPROFILE% \ Documents)

Se você precisar acessar a pasta na área de trabalho, sempre poderá criar um atalho. Isso garante que, embora você possa excluir acidentalmente o atalho, na verdade você nunca exclua a pasta ou seu próprio conteúdo precioso.

Se outros aplicativos dependerem dessa pasta na área de trabalho, você poderá criar um link simbólico com o comando "mklink". Como os links simbólicos são manipulados no nível do sistema de arquivos (enquanto os atalhos são arquivos reais que simplesmente apontam para outro local), não deve haver nenhum problema de compatibilidade com programas que tentam usar esse tipo de "atalho" nos caminhos.

Michael Becker
fonte
2
Dadas as circunstâncias, esta é a resposta certa.
Angstrom
Eu gosto da ideia. mas não entendo se funcionará para o Cygwin que eu instalei na pasta mencionada no Desktop. Isso não causaria problemas na minha instalação e funcionalidade do Cygwin?
Codezombie 23/09
@ JasonStack, Uma instalação do Cygwin pode muito bem ter problemas se você a mover para outro local.
churrasco
1
@ JasonStack, convém editar sua pergunta para incluir os detalhes do Cygwin, pois isso afeta possíveis respostas.
churrasco
1
@JasonStack Cygwin deve tratar junções invisivelmente, como pontos de montagem do Unix. Os programas Unix conhecem os links simbólicos e as versões mais recentes das bibliotecas Cygwin devem tratar os links simbólicos (no estilo Vista) como tal, então cabe ao programa "vê-los" como algo especial ou não.
JDługosz
7

Sim, potencialmente limitado pela versão do Windows que você possui (as versões Home podem não ter a capacidade de ajustar a propriedade). Além disso, lembre-se de que remover as permissões de exclusão não é uma garantia de que você não pode excluir a pasta . Fui queimado várias vezes.

Aqui está um método que geralmente é infalível:

  1. Crie um novo usuário
  2. Atribua a propriedade da pasta que você não deseja excluir para este novo usuário
  3. Remova o acesso do usuário para excluir a pasta, verifique se ele possui privilégios completos de leitura / gravação na pasta.

Eu usei esse truque no Windows NT para o Windows 7. Às vezes, você precisa mexer nas configurações um pouco antes de ficar perfeito.

TESTE ISTO EM UMA NOVA PASTA PRIMEIRO (incluindo a criação de arquivos e pastas dentro da pasta de teste!

Além disso : Siga os conselhos de "Usar backups e controle de versão". Se os arquivos forem tão importantes, você precisará de pelo menos 2 cópias.

Conta
fonte
O Windows Home Basic pode ajustar propriedade; eles simplesmente não incluíram nenhum applet para fazer isso. Uma ferramenta de permissões de terceiros ainda funciona. Além disso, o chamado "God Mode" PIDL pode tê-lo listado; Não me lembro. Depende se eles retiveram o snap-in também.
JDługosz 24/09
5

Os sistemas de arquivos do Windows possuem um sinalizador "somente leitura". Isso é mais simples do que ter que definir permissões DACL para um efeito tão simples.

Em um prompt de comando, use o comando ATTR. No shell da GUI, ele deve estar nas Propriedades, embora a GUI possa fazer algo complexo e além do que você realmente queria.


Além disso, se você recriar um diretório com o mesmo nome, poderá aplicar "restaurar versões anteriores" nele.


Atualizar

Eu experimentei um sistema Win7. A exclusão da GUI (sem lixeira) ignora o Rsinalizador no diretório. Também não há avisos adicionais, como eu já vi para He / ou Ssinalizadores. A emissão a rdpartir da linha de comando fornece acesso negado conforme o esperado. No entanto, você não pode apenas rdum diretório não vazio: excluir arquivo e remover diretório são comandos diferentes. Um comando para remover recursivamente um diretório com conteúdo removerá o conteúdo e falhará ao remover o diretório agora vazio.

Portanto, proteger o diretório em si não funciona na ação da GUI que você tem em mente. E isso implica que qualquer abordagem mais sofisticada para impedir que o próprio diretório seja removido não impedirá que seja esvaziado primeiro! Você disse que ainda deseja acesso normal dentro do diretório para criar e remover arquivos, portanto, bloqueá-lo completamente não é uma solução para você.

A melhor solução parece ser o link simbólico . Criar um link simbólico (novo estilo, o que o Windows Vista e acima agora chamam de link simbólico) para o diretório na área de trabalho, quando o diretório realmente existir em outro lugar, funciona no sentido de que se eu excluir o ícone da área de trabalho (shift-delete, sem lixeira) o diretório real não é afetado, pois apenas o link foi excluído.

Shift-Delete do ícone da área de trabalho não se importava se estava marcado com o Ratributo.

Um programa usando a caixa de diálogo padrão de abertura de arquivo do Windows navegava pelo link simbólico sem problemas. Ele realmente resolveu o nome do diretório vinculado; portanto, o arquivo aberto era o nome real ; por exemplo, Desktop\MyFoldertornou-se D:\scratch\MyFolderenquanto eu navegava por ele.

Usando um link de estilo antigo (uma junção ), o programa viu o nome com a junção ainda no caminho; por exemplo C:\Users\john\Desktop\MyFolder\test.txt, o fato de ser um link é invisível. No entanto, a ação de exclusão da GUI ainda a tratava como um link, não seguindo-a invisivelmente.

De qualquer maneira, se um programa faz usar o nome alias directamente ele vai trabalhar. Mas ter arquivos às vezes vistos com um nome e outras vezes pode confundir as coisas.

Conclusão

Use uma junção na área de trabalho com a pasta realmente localizada em outro lugar e será completamente transparente que é isso que está acontecendo. Opcionalmente, usando DACL para impedir a exclusão acidental do arquivo do ponto de junção na área de trabalho. Pelo menos, tenha um script para recriá-lo quando necessário.

Bônus

Eu não tentei isso, mas gostaria de saber se você poderia ter algo em "novos itens" para recriar a junção ou o link simbólico? Em seguida, clique com o botão direito na área de trabalho agora vazia, escolha Novo ... e escolha "Lixo eletrônico da área de trabalho" no menu. Faça com que ela restaure tudo o que você realmente queria na área de trabalho.

JDługosz
fonte
Eu nunca ouvi falar de lixo eletrônico ou junção no Windows. O que eu sabia era atalho . É isso que você quer dizer com junção? A propósito, eu descobri recentemente a partir de respostas e comentários sobre o mklink e movi a pasta que eu queria ( Temp ) para a pasta Documents e, em seguida, executei mklink mylink %userprofile%\Documents\Tempnela. Funcionou e parece que não tenho problemas com os programas que lidam com o diretório.
Codezombie #
Lixo da área de trabalho é um nome que eu inventei para o script dele. Ou melhor, para o item de menu que ele adiciona para chamar o script. É um trocadilho no Desktop Junction e no Junk Drawer. Um atalho é uma coisa diferente. Os atalhos são conhecidos apenas pelo shell da GUI e confundem todo o resto. Portanto, provavelmente funciona como os links simbólicos ao usar a caixa de diálogo Abrir arquivo, mas você não poderá usá-lo como um nome de diretório real: "C: \ Usuários \ john \ Área de trabalho \ Nome do atalho \ foo.txt" não funcionaria.
JDługosz
1
@JasonStack consulte superuser.com/questions/253935/…
JDługosz
2

Outra coisa que você pode considerar fazer é ativar o recurso Histórico de Arquivos do Windows 8.1. Isso permitirá que seu sistema mantenha automaticamente um histórico de alterações em seus arquivos e pastas. É melhor usar com um local de armazenamento externo, mas também pode ser usado com uma unidade local.

http://blogs.msdn.com/b/b8/archive/2012/07/10/protecting-user-files-with-file-history.aspx

churrasco
fonte
Não consigo falar com o Win 8.1 e como o Histórico de Arquivos funciona, mas no Win 7, clicar com o botão direito do mouse em uma pasta revela as "Versões Anteriores" para recuperar arquivos de um "Ponto de Restauração" anterior. Ótimo em teoria, mas se você preencher o disco, o Windows descarta o ponto de restauração anterior e ... poof - não existe mais a versão anterior. Não confie no sistema operacional mais do que você mesmo.
25715 Ian
O recurso de versões anteriores foi removido no Win 8.1, o recurso de histórico de arquivos é seu substituto.
churrasco
Entendo a alteração do recurso, no entanto, a questão de quando o disco ficar sem espaço para fazer novas entradas no Histórico de Arquivos, o que ocorre permanece. Quer testá-lo? A orientação - não confie no sistema operacional mais do que confia em si mesmo.
23915 Ian Ian
@ Ian W, Não sei como isso é relevante. O histórico de arquivos cria seus backups em um volume de armazenamento separado. O preenchimento completo do disco rígido não pode sobrescrever os backups, pois eles estão em um volume separado.
churrasco
1

Uma solução eficaz pode ser mover a pasta para fora da área de trabalho e configurar uma junção NTFS usando o MKLINKcomando

C: \ Usuários \ Administrador> MKLINK

Cria um link simbólico.

MKLINK [[/ D] | [/ H] [/ J]] Destino do link
        / D Cria um link simbólico de diretório. O padrão é um arquivo
                link simbólico.
        / H Cria um link físico em vez de um link simbólico.
        / J Cria uma junção de diretório.
        Link especifica o novo nome simbólico do link.
        O destino especifica o caminho (relativo ou absoluto) que o novo link
                refere-se a.

Portanto, no seu caso, o comando seria:

MKLINK /J %userprofile%\Desktop\ImportantFolder D:\ImportantFolder

Onde D:\ImportantFolderestá a pasta real e %userprofile%\Desktop\ImportantFoldera junção.

Notas:

  • A junção não precisa ter o mesmo nome da pasta de origem.
  • A junção não é uma cópia, é de fato um redirecionamento outra maneira de acessar sua pasta. Imagine isso como a versão foldr de um atalho normal (* .lnk).
  • As junções diferem do atalho normal para pastas, pois são totalmente transparentes para os programas.
  • Se a junção for excluída, a pasta real não será excluída.
  • Porém, qualquer modificação de arquivo é a mesma que ir D:\ImportantFoldere fazer as coisas. Portanto, se você excluir um passwords.txtarquivo na junção, d:/ImportantFoldertambém o excluirá .
  • Se você excluir acidentalmente a junção, crie-a novamente.

Maneira gráfica (mais eficiente e mais fácil ) (com extensão de menu contextual)

Em vez disso, você pode instalar a Link Shell Extension, em seguida, mova sua pasta para outro lugar, clique com o botão direito do mouse e selecione, em Pick link source...seguida, clique com o botão direito na área de trabalho e selecione drop as...-> Junction. E você terminou.

Esta é a primeira aplicação que instalo em sistemas novos, pois é uma solução extremamente útil. Eu recomendo isso fortemente, se você precisar gerenciar junções ou links simbólicos / rígidos no seu PC.

beppe9000
fonte
0

Você pode fazer backup de todos os seus arquivos e pastas no onedrive. Você pode usá-lo gratuitamente, mas limitado por 15 GB. No entanto, se você tiver uma assinatura do office 365, terá 1 TB de armazenamento no onedrive e ele estará incluído.

zeleena
fonte
Obrigado pela sugestão, mas atualmente não posso usar o backup em nuvem devido às operações intensas de leitura / gravação nesta pasta e, portanto, às limitações no uso da largura de banda.
Codezombie #