Come posso evitare che una cartella venga eliminata inavvertitamente da sola?


41

Ho una cartella molto importante sul mio desktop. Di tanto in tanto pulisco il desktop e sono molto preoccupato di poter cancellare inavvertitamente la cartella menzionata. C'è un modo per prevenire un simile disastro senza limitare le mie frequenti operazioni di lettura / scrittura sul contenuto della cartella? Nota Non mi dispiace eliminare il contenuto all'interno della cartella uno alla volta a volte, ma la cartella stessa è importante per me. Se viene eliminato, perdo molti sforzi.


69
Il desktop è il posto peggiore per archiviare dati critici, archiviarli altrove e creare un collegamento sul desktop.
Moab,

2
La sua pratica comune, un collegamento porta solo alla cartella, tutto funzionerà.
Moab,

3
@JasonStack probabilmente, ma non necessariamente. Se sposti la cartella e hai qualche altro programma o documento che presume che la cartella sia sul tuo desktop, potrebbe rompersi qualcosa. Potrebbe succedere se hai file che si collegano ad altri file, ad esempio. Se ciò non si applica ai tuoi contenuti, probabilmente non avrai problemi.
barbecue

8
Non farlo. <hr /> Crea backup. Effettua sempre i backup . Su supporti esterni. Eseguire sempre backup su supporto esterno. Inoltre, dovresti dare un'occhiata alla funzione Cronologia file / Versioni precedenti di Windows. È abbastanza utile.
anticipare il

1
"Se ora sposto quella cartella da qualche parte e creo un collegamento con lo stesso nome sul desktop, tutto ciò che dipende dalla cartella continuerà a funzionare normalmente?" @JasonStack ho risposto che nella mia risposta aggiornata, di seguito. Vorrei sottolineare che le giunzioni sono state introdotte per l'espressa ragione di poter spostare le cose su un diverso volume fisico senza influenzare nulla.
JDługosz,

Risposte:


112

Non cercare di evitare l'inevitabile. Usa backup e controllo versione.

Tuttavia, potresti negarti l'autorizzazione Elimina . L'eliminazione di file e cartelle all'interno di quella directory è un'autorizzazione separata che è possibile disabilitare anche quando richiesto.


26
Buon grido sui backup + consigli sul controllo della versione.
bertieb,

6
@bertieb è fondamentale. OP non deve cancellare accidentalmente la cartella per perdere il lavoro, l'unità potrebbe morire domani.
CodeCaster

11
Concordato. L'esecuzione senza backup è solo una perdita di dati ad un certo punto in futuro, quando, non se. Ora, se mi scusi, mi affretto a ricontrollare i backup
bertieb,

7
Come tecnico IT, utilizza sia i backup che il controllo della versione per tutti i file importanti, in particolare per i clienti o la tua azienda. Per favore, per favore, per favore.
corsiKa

8
Quali sono le probabilità che ciò accada, chiedi? ABBASTANZA DANNEGGIATO BENE, io stesso ho cancellato accidentalmente una cartella piena di cose importanti alla fine dell'anno scorso che non sono riuscito a recuperare. Importante sveglia, ora backup con fervore il mio lavoro in GitHub, con mirroring su BitBucket e anche con mirroring su un disco rigido portatile. PRENDILO DA UN SOPRAVVIVENZA, BAMBINI, NON FARLO ACCADERE. ASCOLTA QUESTI RAGAZZI, INDIETRO IL TUO STUFF. SUL SERIO.

51

Esiste una soluzione migliore al tuo problema: spostare la cartella in un posto più appropriato (ad es.% USERPROFILE% \ Documents)

Se è necessario avere accesso alla cartella dal desktop, è sempre possibile creare un collegamento. Ciò garantisce che, anche se potresti accidentalmente eliminare il collegamento, non elimini mai realmente la cartella o il suo prezioso contenuto.

Se altre applicazioni dipendono dal fatto che questa cartella si trova sul desktop, è possibile creare un collegamento simbolico con il comando "mklink". Poiché i collegamenti simbolici sono gestiti a livello di file system (mentre i collegamenti sono file effettivi che puntano semplicemente a un'altra posizione), non dovrebbero esserci problemi di compatibilità con i programmi che tentano di utilizzare questo tipo di "collegamento" nei percorsi.


2
Date le circostanze, questa è la risposta giusta.
Angstrom,

Mi piace l'idea. ma non capisco se funzionerà per Cygwin che ho installato nella cartella menzionata sul desktop. Non causerebbe problemi per la mia installazione e funzionalità di Cygwin?
codezombie,

@JasonStack, Un'installazione di Cygwin potrebbe avere dei problemi se la sposti in un'altra posizione.
barbecue,

1
@JasonStack, potresti voler modificare la tua domanda per includere i dettagli di Cygwin, poiché influisce sulle possibili risposte.
barbecue

1
@JasonStack Cygwin dovrebbe trattare le giunzioni in modo invisibile, come i punti di montaggio Unix. I programmi Unix conoscono i collegamenti simbolici e le versioni più recenti delle librerie Cygwin dovrebbero trattare i collegamenti simbolici (in stile Vista) in questo modo, quindi spetta al programma "vederli" come qualcosa di speciale o no.
JDługosz,

7

Sì, potenzialmente limitato dalla versione di Windows in uso (le versioni Home potrebbero non essere in grado di regolare la proprietà). Inoltre, attenzione che la rimozione delle autorizzazioni di eliminazione non è una garanzia che non è possibile eliminare la cartella . Sono stato bruciato più volte.

Ecco un metodo che di solito è infallibile:

  1. Crea un nuovo utente
  2. Assegna la proprietà della cartella che non desideri eliminare a questo nuovo utente
  3. Rimuovere l'accesso dell'utente per eliminare la cartella, assicurarsi che l'utente disponga dei privilegi di lettura / scrittura completi nella cartella.

Ho usato questo trucco da Windows NT a Windows 7. A volte devi cercare un po 'le impostazioni prima di renderlo perfetto.

Provalo prima su una nuova cartella (inclusa la creazione di file e cartelle all'interno della cartella di prova!

Inoltre : seguire il consiglio di "Usa backup e controllo di versione". Se i file sono così importanti, sono necessarie almeno 2 copie.


Windows Home Basic può regolare la proprietà; semplicemente non includevano applet per farlo. Uno strumento di autorizzazioni di terze parti funziona ancora. Anche il cosiddetto PIDL "God Mode" potrebbe averlo elencato; Non ricordo. Dipende dal fatto che abbiano trattenuto anche lo snap-in.
JDługosz,

5

I file system di Windows hanno un flag di "sola lettura". È più semplice che dover impostare le autorizzazioni DACL per un effetto così semplice.

In un prompt dei comandi, utilizzare il comando ATTR. Nella shell della GUI dovrebbe essere nelle Proprietà, anche se la GUI potrebbe fare qualcosa di complesso e al di là di quello che volevi veramente.


Inoltre, se si ricrea una directory con lo stesso nome, è possibile applicare "Ripristina versioni precedenti" su di essa.


Aggiornare

Ho sperimentato su un sistema Win7. L'eliminazione della GUI (senza cestino) ignora il Rflag nella directory. Non ci sono avvisi aggiuntivi al riguardo, come ho visto per He / o Sflag. L'emissione rddalla riga di comando fornisce l' accesso negato come previsto. Tuttavia, non è possibile solo rduna directory non vuota: eliminare il file e rimuovere la directory sono comandi diversi. Un comando per rimuovere ricorsivamente una directory con i contenuti rimuoverà i contenuti e non riuscirà a rimuovere la directory ora vuota.

Quindi proteggere la directory stessa non funziona nell'azione della GUI che hai in mente. E implica che qualsiasi approccio più elaborato per impedire la rimozione della directory stessa non impedirà che venga prima svuotato! Hai detto che desideri comunque l'accesso normale all'interno della directory per creare e rimuovere i file, quindi bloccarlo completamente non è una soluzione per te.

La migliore soluzione sembra essere il collegamento simbolico . Creare un collegamento simbolico (nuovo stile, quello che Windows Vista e sopra ora chiamano un collegamento simbolico) alla directory sul desktop, quando la directory esiste effettivamente da qualche altra parte, funziona nel senso che se elimino l'icona del desktop (shift-delete, nessun cestino) la directory effettiva non è interessata poiché è stato eliminato solo il collegamento.

Maiusc-Canc dell'icona del desktop non importava se era contrassegnato con l' Rattributo.

Un programma che utilizza la finestra di dialogo standard di apertura file di Windows ha navigato attraverso il collegamento simbolico senza problemi. In realtà ha risolto il nome della directory collegata, quindi il file aperto era il vero nome; ad esempio è Desktop\MyFolderdiventato D:\scratch\MyFoldercome ho navigato attraverso di esso.

Usando un collegamento vecchio stile (una giunzione ), il programma ha visto il nome con la giunzione ancora nel percorso; ad esempio C:\Users\john\Desktop\MyFolder\test.txt, il fatto che si tratti di un collegamento è invisibile. Tuttavia, l'azione di eliminazione della GUI l'ha comunque trattata come un collegamento, non seguendolo invisibilmente.

In entrambi i casi, se un programma fa utilizzerà il nome alias direttamente che funzionerà. Ma avere file a volte visti con un nome e a volte l'altro potrebbe confondere le cose.

Conclusione

Usa un Junction sul desktop con la cartella che si trova davvero altrove e sarà completamente trasparente che questo è ciò che sta accadendo. Facoltativamente, utilizzare DACL per impedire la cancellazione accidentale del file del punto di giunzione sul desktop. Almeno, avere uno script per ricrearlo quando necessario.

indennità

Non ho provato questo, ma mi chiedo se potresti avere qualcosa in "nuovi elementi" per ricreare la giunzione o il collegamento simbolico? Quindi fai clic con il pulsante destro del mouse sul desktop ora vuoto, scegli Nuovo ... e scegli "Desktop Junk" dal menu. Fallo ripristinare sul desktop tutto ciò che veramente desideravi.


Non ho mai sentito parlare di Desktop Junk o junction in Windows. Quello che sapevo era una scorciatoia . È quello che intendi per giunzione? A proposito, di recente ho scoperto dalle risposte e dai commenti su mklink e ho spostato la cartella che volevo ( Temp ) nella cartella Documenti, quindi mklink mylink %userprofile%\Documents\Templ'ho eseguita . Ha funzionato e mi sembra di non avere problemi con i programmi che gestiscono la directory.
codezombie,

Desktop Junk è un nome che ho inventato per la sua sceneggiatura. O meglio per la voce di menu che aggiunge per invocare lo script. È un gioco di parole su Desktop Junction e Junk Drawer. Una scorciatoia è una cosa diversa. I collegamenti sono noti solo alla shell della GUI e confondono tutto il resto. Quindi probabilmente funziona come i link simbolici quando si utilizza dialogo File-Open, ma si sarebbe non essere in grado di usarlo come un vero e proprio nome di directory: "C: \ Users \ john \ Desktop \ Shortcutname \ foo.txt" non avrebbe funzionato.
JDługosz,


2

Un'altra cosa che potresti considerare di fare è abilitare la funzionalità Cronologia file di Windows 8.1. Ciò consentirà al sistema di conservare automaticamente una cronologia delle modifiche ai file e alle cartelle. È preferibile utilizzarlo con una posizione di archiviazione esterna, ma può essere utilizzato anche con un'unità locale.

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


Non posso parlare con Win 8.1 e come funziona la Cronologia file, ma in Win 7 facendo clic con il pulsante destro del mouse su una cartella vengono visualizzate le "Versioni precedenti" per recuperare i file da un precedente "Punto di ripristino". Ottimo in teoria, ma se si riempie il disco, Windows scarta il punto di ripristino precedente e ... poof - nessuna versione precedente più. Non fare affidamento sul sistema operativo più di te.
Ian W,

La funzionalità delle versioni precedenti è stata rimossa in Win 8.1, la funzionalità di cronologia dei file è la sua sostituzione.
barbecue,

Capisco la modifica delle funzionalità, tuttavia, la domanda su quando il disco esaurisce lo spazio per creare nuove voci di Cronologia file, cosa succede rimane. Vuoi provarlo? La guida: non fidarti del sistema operativo più di quanto non ti fidi di te stesso.
Ian W,

@Ian W, non sono sicuro di quanto sia rilevante. Cronologia file crea i suoi backup su un volume di archiviazione separato. Il riempimento completo del disco rigido non può sovrascrivere i backup, perché si trovano su un volume separato.
barbecue,

1

Una soluzione efficace potrebbe essere quella di spostare la cartella dal desktop e quindi impostare un nodo NTFS usando il MKLINKcomando.

C: \ Users \ Administrator> MKLINK

Crea un collegamento simbolico.

MKLINK [[/ D] | [/ H] | [/ J]] Target collegamento
        / D Crea un collegamento simbolico alla directory. L'impostazione predefinita è un file
                collegamento simbolico.
        / H Crea un collegamento reale anziché un collegamento simbolico.
        / J Crea una giunzione di directory.
        Link specifica il nuovo nome simbolico del link.
        Target specifica il percorso (relativo o assoluto) del nuovo collegamento
                si riferisce a.

Quindi nel tuo caso il comando sarebbe:

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

Dov'è D:\ImportantFolderla cartella attuale ed %userprofile%\Desktop\ImportantFolderè il nodo.

Gli appunti:

  • La giunzione non deve recare lo stesso nome della cartella di origine.
  • La giunzione non è una copia, è in realtà un reindirizzamento un altro modo per accedere alla tua cartella. Immaginalo come la versione foldr di una normale scorciatoia (* .lnk).
  • Le giunzioni differiscono dal normale collegamento alle cartelle in quanto sono totalmente trasparenti per i programmi.
  • Se il nodo viene eliminato, la cartella effettiva non viene eliminata.
  • Tuttavia, qualsiasi modifica del file è la stessa di andare D:\ImportantFoldere fare le cose. Quindi, se si elimina un passwords.txtfile nel nodo, lo si è eliminato anche da d:/ImportantFolder.
  • Se si elimina accidentalmente l'incrocio, lo si crea di nuovo.

Modo grafico (più efficiente più semplice ) (con estensione menu contestuale)

Puoi invece installare Link Shell Extension quindi spostare la cartella da qualche altra parte, fare clic con il tasto destro del mouse e selezionare, Pick link source...quindi fare clic con il tasto destro del mouse sul desktop e selezionare drop as...-> Junction. E il gioco è fatto.

Questa è la prima applicazione che installo su sistemi nuovi, in quanto è una soluzione estremamente utile. Lo consiglio vivamente se dovrete mai gestire giunzioni o collegamenti hard / simbolici sul vostro PC.


0

Puoi eseguire il backup di tutti i tuoi file e cartelle in onedrive. Puoi usarlo gratuitamente ma limitato per 15 GB. Tuttavia, se si dispone di un abbonamento a Office 365, è necessario archiviare 1 TB in onedrive ed è incluso.


Grazie per il suggerimento, ma al momento non posso usare il backup su cloud a causa delle intense operazioni di lettura / scrittura in questa cartella e, quindi, delle limitazioni sull'uso della larghezza di banda.
codezombie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.