Yosemite non ama lo svuotamento della spazzatura

4

Sono su Yosemite (10.10.1) e ho notato la fastidiosa abitudine di non voler svuotare la spazzatura - continua a piagnucolare che The operation can’t be completed because the item “whatever” is in use. Questo sta cominciando a farmi incazzare - Posso andare a .Trash e rimuovere le cose a mano, ma sta succedendo? Una volta che un file non è in uso ed è stato eliminato, perché il sistema operativo non può riconoscere che non è effettivamente collegato a nessuna applicazione? Questo problema si è verificato se l'app utilizzata per quel tipo di file è ancora aperta o non btw.

    
posta user1256923 09.12.2014 - 22:11
fonte

2 risposte

9

Per scoprire quali sono i file nel Cestino e da chi:

lsof +D ~/.Trash

Il nome del comando nella prima colonna verrà troncato. Se viene troncato a tal punto da non poter identificare il processo, la seconda colonna contiene pid (ID processo), che è possibile eseguire il rimando in Activity Monitor. Oppure ottieni informazioni aggiuntive usando ps -p pid .

Nota:

È stato suggerito il comando:

sudo rm -rf ~/.Trash

può essere utile qui. Questo non è il caso!

Se un file è in uso (che è lo scenario di cui tratta la domanda), non può essere rimosso! Neanche da root.

Il comando suggerito può essere utile se:

  • Sei in un account amministratore (o in sudoers, che io scoraggio come debolezza della sicurezza), e
  • L'unico motivo per cui non è possibile rimuovere il file è che le sue autorizzazioni negano l'eliminazione.

In generale ci sono tre motivi per cui potresti non essere in grado di svuotare il cestino e ogni motivo ha una sua cura.

  • Se il file (o cartella) è bloccato, puoi sbloccarlo o tenere premuto il tasto opzione mentre svuota il cestino.

  • Se le autorizzazioni non ti consentono di rimuovere il file, puoi modificare le autorizzazioni per consentirlo oppure utilizzare sudo per sovrascrivere le autorizzazioni del file.

  • Se il file è in uso, l'unica soluzione è trovare il processo che sta utilizzando il file e farlo smettere di usarlo. Nel caso più semplice, riprovare dopo una breve attesa è tutto ciò che serve. Potrebbe essere necessario forzare l'uscita dall'app e lo scopo del comando lsof è determinare quale app deve essere chiusa. Tuttavia, anche root non può rimuovere un file che è in uso.

Il takeaway è che il problema "Non riesco a svuotare il cestino" non ha una soluzione valida per tutti. Quando ti viene detto che qualcosa è in uso, non perdere tempo a cercare di applicare una correzione che non si adatta a questa situazione.

Ho anche visto suggerito che Secure Empty Trash può essere utile. Di nuovo, questo non è il caso! Secure Empty Trash sovrascrive i settori su disco in cui sono archiviati i dati del file, ma solo dopo che il file è stato cancellato con successo . Se non è possibile eliminare il file, per qualsiasi motivo, non verrà eliminato o sovrascritto. Se il file è hard-linked, l'eliminazione elimina solo uno dei suoi collegamenti. Finché restano altri collegamenti, il inode non viene eliminato e lo spazio su disco del file non viene sovrascritto.

    
risposta data 09.12.2014 - 23:30
fonte
3

Significa che il file è in uso, quindi rimuoverlo potrebbe influenzare l'applicazione che lo sta usando. puoi utilizzare lsof o fs_usage per monitorare quale processo li sta utilizzando, ad es.

$ lsof -T|grep Arial
Skype       311 auniyal  txt      REG                1,4     774476  499182 /Library/Fonts/Microsoft/Arial.ttf
    
risposta data 09.12.2014 - 22:24
fonte

Leggi altre domande sui tag