Perché non riesco a cancellare una cartella?


14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

Ho provato a eliminare queste cartelle dal terminale con:

rm -r

2
Se l'output dell'errore proviene da nautilus, puoi aggiungere una schermata alla tua domanda. Inoltre, qual è l'output del rm -rterminale? Hai provato con le risposte di questo post ?
Lucio

1
usa rm -rfinvece
nickanor

Sono stato usato rm -Rfper rimuovere le directory ricorsive, potrebbe essere questo lavoro per te. La R maiuscola significa ricorsivo, vedi le pagine manman rm
revnoise il

1
Hai il permesso di rimuovere questa directory? Eseguilo ls -lae incollalo qui per scartare questa opzione.
rinnovo del

Credo che la cartella sia stata eliminata prima su Windows e poi abbia tentato di eliminare su Ubuntu. Quindi ha cercato di eliminare su Windows ma ha detto errore. Directory not empty ma è una promessa tutta vuota. Su windows dice erroreError x00000
tepheno

Risposte:


10

Hai provato sudo rm -r. Che tipo di file ci sono? È inoltre possibile eliminare prima tutti i file, quindi eliminare la cartella. È un lavoro extra, ma a volte ne vale la pena per farlo.

sudo è per azioni da superutente.


Conosco sudo e la cartella non contiene file solo in una sottocartella. Cartella artista quindi Cartella album senza MP3 all'interno. Solo cartella.
tepheno,

funziona amico ...
Angelin Nadar,

9

Ho avuto questo problema con una cartella su un filesystem btrfs. Controllare i punti di mount e lsof sono le cose normali da cercare. Nel mio caso è stata la corruzione causata da un vecchio bug, poiché risolto:

Le cose normali da verificare:

  • lsof + D <percorso> - Questo sarà l i s t tutto o penna f iles. Non è possibile eliminare una cartella che contiene file aperti, anche se normalmente ciò darebbe un errore leggermente diverso: "Dispositivo o risorsa occupata". Notare che se si lascia fuori "+ D <percorso>", lsof mostrerà un elenco per tutte le cartelle su tutti i filesystem - che farà perdere tempo. ;)
  • mount : Questo ti mostrerà i filesystem attualmente montati. Non è possibile eliminare un mountpoint montato attivamente o le relative cartelle principali.
  • btrfs sub list <percorso> : simile a un punto di montaggio, non è possibile eliminare un sottovolume btrfs se non usando il comando specifico btrfs : btrfs subvolume delete <percorso> .

Soluzione alternativa alla corruzione

In caso di corruzione in cui non può essere facilmente risolto, la soluzione di base è eseguire il backup, formattare il filesystem e quindi ripristinare (tralasciando i dati errati). A seconda di quanti dati hai nel filesystem, questo può essere un lavoro ingrato. : - /

Nel mio caso la cartella del problema si trovava all'interno di un sottovolume, quindi sono stato in grado di fare quanto sopra ma eliminando solo il sottovolume invece dell'intero filesystem. Ho eseguito il backup dei miei dati ed eliminato il sottovolume: btrfs sub del <subvolume-path> . Sono stato quindi in grado di ripristinare in un nuovo volume secondario, tralasciando la cartella del problema.

Corruzione di i_size

La causa nel mio caso è risultata essere la corruzione di i_size , dove era diverso da zero. Btrfs usa i_size per dire se la cartella è vuota o meno. Per verificare ciò, eseguire:

stat -c %s <foldername>

L'i_size di una cartella vuota in btrfs dovrebbe essere zero. In ext è in genere 4k.

Link correlati:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_cannot_delete_an_empty_directory


6

Prova cdnella directory, quindi rimuovi tutti i file utilizzando rm -rf *. Quindi provare a uscire dalla directory e utilizzare rmdirper eliminare la directory.


Questo funziona magnificamente per me +1 Grazie amico
AndrewL64,

Ho provato questo e ho ricevuto il messaggio di errore: "Elenco argomenti troppo lungo"
Rafael_Espericueta

1

Provare sudo rm -rf [Folder name]

Se continua a visualizzare Directory non vuota, significa che viene utilizzata la directory. prova a chiuderlo o controlla quale programma lo sta usando, quindi riutilizzare il comando.

Ha funzionato per me quando stavo cercando di eliminare il progetto Unity ed è stato utilizzato da Hub hub. semplicemente chiuso hub unità e riscritto il comando ha funzionato bene.


0

Vai alla cartella immediatamente prima di quella che desideri eliminare ed esegui questo comando cambiando foldername con il nome della tua cartella: rm -rf foldername

R significa ricorsivo e f significa forza.


rm: cannot remove Wan Pisu - New World': Directory not empty
Tepheno

Hai usato -rf?
Ramon Suarez,

-rfPenso di aver usato rm -r -f -vsignore.
tepheno,

Ho appena fatto un test con lo stesso nome di directory e ha funzionato per me, anche usando il tuo modo di separare rf v. Sei sicuro di usare rme no rmdir? Il verbose (-v) ti ha dato qualche indizio? Inoltre, ci sono file 0 byte nella tua directory? "rm -r -f -v Wan \ Pisu \ - \ New \ World / rimosso 'Wan Pisu - New World / test.test' rimosso directory: 'Wan Pisu - New World'"
Ramon Suarez

no, sono solo cartelle. Inoltre, quando lo sto eliminando su Windows, non è Error; 0x-----possibile eliminarlo. -vsta spiegando cosa si sta facendo, lo sorm --help
tepheno


0

Se non hai impostato le autorizzazioni di scrittura, non puoi rimuovere la directory.

Nell'esempio seguente, anche se sono proprietario della directory, non riesco a rimuoverla. Una volta aggiunto i permessi di scrittura con chmod, tutto ha successo.

DIR:/xieerqi
skolodya@ubuntu:$ ls -dl TESTDIR/                                              
dr-xr-xr-x 2 xieerqi xieerqi 4096 Jan 24 16:06 TESTDIR//

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              
rm: cannot remove ‘TESTDIR/one & two’: Permission denied
rm: cannot remove ‘TESTDIR/tom&jerry’: Permission denied
rm: cannot remove ‘TESTDIR/jekyl&hide’: Permission denied
rm: cannot remove ‘TESTDIR/pdfReader.sh’: Permission denied

DIR:/xieerqi
skolodya@ubuntu:$ chmod +w TESTDIR/                                            

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              

DIR:/xieerqi
skolodya@ubuntu:$ echo $?
0

0

Ho cartelle in Windows che sono montate su una macchina virtuale (VM) di Ubuntu VirtualBox. Non sono riuscito a rimuoverli dal file manager di Windows o dall'interno della VM usando rmdiro rm -Rf *.

TLDR : sono stato finalmente in grado di rimuoverli in Git Bash (in Windows, ovviamente), usando rm -Rf *.

Quando ho cercato di eliminare nel file manager di Windows, mi è stato necessario disporre dei privilegi di amministratore per eliminare le cartelle. Ma, anche come amministratore, ha comunque fallito.

Dall'interno della VM di Ubuntu (dove non ho mai avuto problemi a rimuovere i file condivisi prima), ho ricevuto l'errore cannot remove protocol error, così come alcuni altri.

Infine, in Git Bash in Windows, sono stato in grado di eliminare le cartelle. Immagino che Git Bash avesse una sorta di blocco sulle cartelle. In Git Bash, la mia directory di lavoro era una di quelle che stavo cercando di eliminare. Mi sono ritirato da esso e poi l'ho eliminato usando rm -Rfsenza errori.

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.