Eliminazione permanente dei file su Mac OS


21

Qualche tempo fa, in quanto relativamente nuovo utente di Mac OS X, sono stato sorpreso di apprendere che non puoi facilmente eliminare file . Direttamente, cioè senza prima spostarli nel cestino. Su Windows e Linux questo può ovviamente essere fatto facilmente, ma non così su Mac.

Ho notato questo quando provavo a cancellare i file da una chiavetta USB: rimuovere i file ("sposta nel cestino") non libera spazio; ciò accade solo dopo aver svuotato l'intero Cestino dell'intero sistema. Non particolarmente conveniente! (Sembra stupido dover svuotare l'intero cestino solo per fare un po 'di spazio sulla chiavetta USB. Potrebbero esserci gigabyte di roba lì dentro, e questo tipo di sconfigge il suo scopo - e se avessi davvero bisogno di ripristinare qualcosa dal spazzatura un giorno.)

Quindi, qual è il tuo modo di aggirare questo ? Hai acquistato un'applicazione di terze parti come RAW Trash per $ 16,95 solo per eliminare i file o svuoti diligentemente il cestino quando necessario? O mi sono perso qualcosa? Inoltre, puoi convincermi che questo è effettivamente il modo in cui dovrebbe essere - che gli utenti non dovrebbero essere in grado di giocherellare facilmente con il filesystem? :)


1
Stavi cercando il collegamento ⌘+⌥+⌫(Comando + Opzione + Elimina)?
Daniel,

Risposte:


22

Non sono così contento del modo in cui Mac OS X gestisce anche questo. Se voglio davvero cancellare qualcosa, specialmente dalle chiavette USB, di solito accendo Terminal e rmi file manualmente.


28

Dato che così tante persone sembrano volerlo, ho appena creato un servizio per farlo, per Snow Leopard, chiamato Elimina immediatamente . Si presenta nel menu Servizi e nel menu contestuale nel Finder.

Puoi scaricarlo da GitHub . Decomprimi l' .ziparchivio e sposta il " Delete Immediately.service" risultante nella cartella Servizi nella cartella della tua libreria,~/Library/Services/ . Potrebbe essere necessario disconnettersi e riconnettersi (e / o abilitarlo nella sezione Servizi delle preferenze Tastiera) affinché il sistema riconosca il servizio.

Suggerirei anche di controllare il READMEfile sulla pagina principale di GitHub. E se vuoi contribuire al codice, localizzarlo o creare un'icona, sentiti libero!

Menù contestuale

Menu dei servizi


4
Shiney. Puoi anche associare una scorciatoia da tastiera a questo servizio: "Nel menu Applicazioni selezionare Servizi / Preferenze servizi. Apri Preferenze di Sistema / Tastiera / Scorciatoie da tastiera / Servizi. Seleziona un servizio, premi Invio e poi premi la combinazione di tasti scorciatoia prescelta" (da gingerbeardman.com/services )
dbr

Molto bello, grazie! Funziona solo con 10.6? (Sarò ancora su Leopard per un po '.)
Jonik,

1
Funziona solo su 10.6 per ora, non ho familiarità con il funzionamento dei servizi su 10.5 (non vengono visualizzati nel menu di scelta rapida e scrivere un plug-in di menu di scelta rapida per 10.5 è un po 'più difficile).
jtbandes

E, Jonik, ti ​​consiglierei davvero di aggiornare alla 10.6 se il tuo hardware lo consente (cioè hai un Mac Intel). Anche se non otterrai molti degli aumenti di velocità se non hai una macchina a 64 bit, come io non ho, i miglioramenti minori valgono sicuramente il prezzo basso.
jtbandes

1
C'è un modo per assegnare Shift + Del come collegamento a questo servizio? Sembra che le Preferenze di Sistema ti
emettano un

8

Il modo senza Terminale di risolvere questo enigma è lanciare il seguente incantesimo per placare gli dei della Mela, in questo modo:

Seleziona il file da sacrificare seguito da recitare:

⌘ Elimina

⌘ ⇧ ⌥ ⌫

Questo invierà il file nel Cestino, quindi eliminerà l'intero Cestino , quindi dovrebbe mandare all'oblio la vittima (e tutti gli altri oggetti cestinati).


Figo, grazie! In questo momento non posso confermare se funziona, ma in tal caso, è esattamente quello che volevo :)
Jonik

12
Quello che fa è eliminare prima il file, quindi svuotare il cestino. Sebbene sia un'utile scorciatoia da tastiera, in realtà non risolve il problema di non essere in grado di eliminare facilmente i file selezionati.
Daan,

1
Daan concordato. Non è l'ideale Ma usare rm nel Terminale non è anche un modo ideale e piuttosto non-Mac di fare le cose. Il nostro amico Jonik dovrà ponderare i pro e i contro credo. ;-)
GeneQ,

9
-1 per una risposta fuorviante. E se l'utente non volesse svuotare il cestino?
hasen

3
-1 anche, la domanda originale menziona che svuotare il cestino di sistema "Non particolarmente conveniente!", Che è quello che fa quella scorciatoia ..
dbr

4

Per eliminare un file specifico, senza passare attraverso il cestino ..

  • aprire un terminale
  • digitare rm(con uno spazio finale) o rm -rse si prevede di rimuovere una directory
  • trascina e rilascia il file nella finestra Terminale, che inserisce il percorso completo del file rilasciato
  • premi invio

La soluzione di servizio "Elimina immediatamente" di jtbandes è molto più elegante, ma la "via terminale" non richiede alcun software aggiuntivo (quindi va bene quando si lavora su macchine che non si usano regolarmente)


+1, grazie per il trascinamento della selezione sul terminale
Jonik,

Grazie per il suggerimento utile, in base al tuo suggerimento ho realizzato una semplice app per il cacao, ecco il link: daemonconstruction.blogspot.in/2013/01/…
Devarshi

@Miraaj Sono contento che la risposta sia stata utile! Il link per il download nel tuo post sul blog è interrotto (il link contiene la frase successiva, anziché un URL)
dbr

@dbr .. grazie per avermi informato .. L'ho aggiornato ora :-)
Devarshi

2

Uso rm -rf nella riga di comando. Elimina molto più velocemente ed elimina tutto. Un problema comune che ho con Windows è che l'eliminazione è un processo piuttosto che un punto nel tempo e spesso mi ritrovo a guardare Windows eliminare cartelle e file per diversi minuti. Rm -rf è veloce.

Puoi anche usare rm -rf per eliminare un Cestino specifico. Il cestino è una cartella nascosta denominata .Trash nella radice del volume o della directory pertinente.

E sì, penso che sia così. Gli utenti non dovrebbero essere in grado di eliminare i file troppo rapidamente utilizzando Finder. I file dovrebbero essere recuperabili dal Cestino.


Se lo spazio nel Cestino non viene conteggiato come spazio utilizzato, i file nel Cestino verranno sovrascritti nel tempo e non potranno più essere recuperati. Quindi la scelta è davvero tra mantenere i file nel Cestino e subire lo spazio colpito o non mantenere i file nel Cestino e avere più spazio disponibile. Le combinazioni tra i due sono imprevedibili per un utente normale.
Andrew J. Brehm,

4
Questo è un buon consiglio, ma penso che dovrebbe essere reso estremamente chiaro agli inconsapevoli / non esperti che rm -rf deve essere usato con estrema attenzione; cancellerà tutto nella cartella che le passi, inclusa la cartella, senza conferma. Se una cartella di sistema viene passata a questo comando, puoi fare abbastanza danni da richiedere di reinstallare il sistema operativo (Mentre le autorizzazioni dovrebbero impedirti di distruggere il sistema, tendo a provare a non fare affidamento su di essi).
Babu,

Perché il voto negativo ???
Andrew J. Brehm,

2

Parte della bellezza di Mac OS X è che mentre è completamente facile per gli utenti inesperti orientarsi e fare cose, gli utenti esperti possono "giocherellare con il sistema" usando la potenza di Unix sottostante tramite una shell dei comandi (ad es. Terminal.app).

@Leauki ha ragione sull'uso del comando unix rm, ma ATTENZIONE, soprattutto se si utilizza il comando-rf bandiere! Non esiste una rete di sicurezza e puoi fare seri danni, anche eliminando il tuo filesystem di root!

La mia raccomandazione è di non usare percorsi assoluti con rm, ma dicd entrare nella directory con cui si desidera lavorare prima, e poi per esempio:

rm -rf ./<subpath to file to delete>dove il ./nel percorso impone rmdi operare solo nella directory in cui ci si trova attualmente.


5
rm -rf bin - oops Ho dimenticato di cd, ma non sono in / quindi non così grande. rm -rf / bin - oops Ho dimenticato di digitare. così GRANDI OOP! (indipendentemente da dove ho fatto il cd)! Quindi non sono d'accordo.
In pausa fino a nuovo avviso.

@Dennis - sì, se ti dimentichi di digitare il periodo in cui sei in un mondo di dolore! Immagino che questo sia il motivo principale per cui Apple non vuole che il suo utente medio faccia questo tipo di cose, quindi la funzionalità Cestino con cui l'OP stava mettendo in discussione. Quindi, sono d'accordo con il tuo disaccordo, ma sembra che tu ed io abbiamo esperienza * nixers che rispettano la shell dei comandi come il luogo potenzialmente pericoloso che sappiamo essere. Stavo solo suggerendo che gli utenti meno esperti si abituassero prima di usare comandi potenzialmente pericolosi.
avstrallen,

Grazie. Sono d'accordo che è abbastanza facile farlo sulla riga di comando. Ma in questo caso non mi piace in particolare dover ricorrere a quello ... Su Mac OS, non dovresti usare la riga di comando per cose comuni, tipo di utente finale, IMHO e liberare lo spazio su una chiavetta USB è una cosa abbastanza comune da fare.
Jonik,

Sono d'accordo con @GeneQ e @Daan - ma ho una soluzione metodologica: non inserisco nulla nel Cestino fino a quando non so per certo che ho finito con esso e quindi svuoto immediatamente il Cestino ogni volta ... problema risolto.
aprile

1

Ho trovato il seguente applecript, che ho legato a spostare del con Keyboard Maestro, quindi ora funziona come in Windows. Con l'elemento selezionato nel Finder, shift del eseguirà lo script, che visualizza un avviso di dialogo dell'eliminazione permanente dell'elemento con il suo nome. Facendo clic su OK si completa l'eliminazione.

Non so molto sui comandi della shell e alcuni dei precedenti poster avvertivano del pericolo di usare rm -rf, cosa che ho fatto nella sceneggiatura. Tuttavia, sembra funzionare finora come previsto per me.

tell application "Finder"
    set myPosixPath to selection as text --returns an alias path
    set myPosixPath to POSIX path of myPosixPath --set it to posix style path with backslashes

    --identify whether it's a file or folder. Only for the warning dialog.
    if character -1 of myPosixPath is "/" then
        set itemType to "folder"
    else
        set itemType to "file"
    end if

    --display a warning
    display dialog myPosixPath & "

This cannot be undone." with title "Really permanently delete this " & itemType & "?"
do shell script "rm -rf " & quoted form of myPosixPath --execute a shell script to delete the item
end tell

per tutto ciò che Mac OS X non fornisce già, c'è Keyboard Maestro.
Kaushik Gopal,

0

Penso che ciò avvenga per coerenza e sicurezza dell'utente. Penso che sia meglio mantenere i file più a lungo del necessario e usare lo spazio invece di essere gung-ho ed eliminarli immediatamente.

Questo è un po 'fastidioso quando lavori con le chiavette USB e le sposti su una macchina Windows e vai ... dov'è tutto il mio spazio ... e cos'è questa fastidiosa cartella .trash.


0

Usa muCommander per eliminare i file (è gratuito)

Invece di usare il Finder, forse usare un altro file manager come muCommander. Può eliminare i file e spostare anche i file nel cestino. È molto più sicuro che incollare "rm -rf" in un Terminale, dove si rischia di incollare comandi errati causando danni irreversibili.


0

Se vuoi davvero usare un'app di terze parti , un'alternativa molto più economica al cestino RAW che hai citato è File Shredder . (US Mac App Store $ 3,99)

Offre diversi modi per eliminare in modo sicuro i file:

  • Una normale cancellazione con un solo passaggio che sovrascrive i tuoi file.
  • Un pass conforme a DoD a sette passaggi assicura che la maggior parte delle persone non riesca ad accedere ai file.
  • Una cancellazione di Gutmann a 35 passaggi assicura che i tuoi file siano veramente spariti quando li elimini.

Questo potrebbe essere un po 'eccessivo per la maggior parte delle persone, anche se stai cercando un modo più economico di Cestino RAW per eliminare in modo sicuro i file FileShredder fa il lavoro.

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.