A beneficio dei lettori:
Attenzione rm -rf
in questo caso! Può creare problemi altrove nel caso in cui si tratti di una condivisione di rete! Sei stato avvertito!
In quasi tutti i casi, se a directory
sembra essere vuoto, utilizzare rmdir directory
o forse sudo rmdir directory
. Non utilizzare rm
(o del
su Windows). Se questo non funziona, è necessario scoprire cosa blocca questa richiesta, risolverlo e quindi riprovare rmdir
.
Si prega di notare che non conosco OS-X, ma penso che le cose siano molto simili al comportamento Unix / BSD.
È molto probabile che la directory in questione fosse solo un punto di mount (dagli encfs) o risiedesse su un mount point che divenne di sola lettura o bloccato in uno stato improprio (che impediva la rimozione della directory). Se ora imponi la rimozione della directory, possono succedere cose molto brutte.
Nel migliore dei casi la directory era davvero vuota, quindi rimuoverla (distruggendo il mount ecc.) Non ha fatto ulteriori danni. Nel brutto caso non era vuoto, sembrava solo essere, il che significa che hai spazzato via qualcosa che forse non volevi uccidere. Tutto dipende dal tipo di montaggio, quali driver sono in uso, ecc. Pp.
Se le cose vengono implementate ragionevolmente bene, normalmente non dovrebbe succedere nulla di male. Tuttavia, questo non è il caso normale. Le cose sono già in uno stato strano, il che significa: qualcosa non va, quindi meglio non provare a mescolarlo ulteriormente! Se qualcosa si rompe, qualsiasi tocco sbagliato potrebbe romperlo.
Ad esempio, se si verifica una condizione di competizione su una condivisione di rete, è possibile che vengano rm -rf
rimossi i dati che sono stati appena copiati nella condivisione da qualcun altro.
Tuttavia rmdir
è garantito per non fare mai del male, oltre a rimuovere directory davvero vuote. Questo è vero anche su NFS, perché NFS garantisce solo un comportamento veramente atomico su mkdir
e rmdir
, ma in nessun altro posto.
PER TUA INFORMAZIONE:
È possibile rilevare un mountpoint utilizzando lo strumento mountpoint directory
. In alternativa, guarda l'output di mount
e prova a individuare i tuoi supporti lì. Ma attenzione, almeno sotto Linux questo potrebbe mentire. Utilizzo mountpoint
dell'utilità più affidabile ma meno conveniente.
In tal caso, hai trovato il mountpoint, puoi smontarlo e quindi rimuovere la directory, questa è la seguente sequenza:
umount directory
rmdir directory
Se necessario usare sudo
, come al solito.
Appunti:
Le condivisioni di rete potrebbero negare rmdir
(e qualsiasi altra cosa) a causa dei diritti di accesso.
I filesystem difettosi possono negare rmdir
, a seconda della strategia fallita. Forse vedrai un messaggio ragionevole in quel caso, forse no.
Sotto Linux (e probabilmente qualsiasi sistema operativo moderno) puoi anche limitare l'accesso usando mezzi diversi (come montare qualcosa di sola lettura, capacità come in SeLinux, ecc.). Ciò significa quindi che non vedi che è un mountpoint e non vedi nulla di sbagliato, ma semplicemente non funziona. In tal caso, devi cercare qualche altro motivo e può essere sepolto molto profondamente nel sistema operativo. Dipende dallo strumento se viene visualizzato un messaggio di errore ragionevole. Forse anche dare un'occhiata al registro syslog / kernel come dmesg
sotto Linux (scusate, non conosco l'equivalente OS-X).
Si noti che anche il blocco obbligatorio dei file può essere una fonte. Mentre questo è normale su Windows, di solito non è il caso normale Unix e non l'ho mai sentito per le directory. I blocchi di file obbligatori sono coperti da POSIX, ma sono opzionali.
Molto spesso in questi casi, la directory in questione risiede su un filesystem diverso da quello che si pensava. Puoi scoprire quale, con il comando df directory
(penso che sia lo stesso in OS-X).
Puoi ispezionare più in profondità con strumenti come stat
o statfs
nella directory. Tuttavia, questi sono un livello un po 'basso per le persone normali e abbastanza spesso tali strumenti sono ben nascosti agli utenti normali.
Le directory possono avere file con nomi divertenti. Come un file che cancella immediatamente l'output del terminale, quindi sembra che non ci sia. Prova qualcosa di simile ls -al | less
o usa qualcosa di simile a MidnightCommander mc
.
Ci sono un sacco di altre possibilità, tra cui bug, haxor, alieni o forse cose più esotiche come le fate. Ma di solito non è saggio iniziare a guardare lì, invece prima cerca di trovare l'errore al tuo fianco, perché "errare humanum est".
rmdir
farlo - ma spesso è la causa per cui non è possibile smontare un volume).