androide

Come rimuovere (cancellare) la directory in Linux

Cancellare Ubuntu dalla Partizione EFI di Windows

Cancellare Ubuntu dalla Partizione EFI di Windows

Sommario:

Anonim

Esistono diversi modi per rimuovere le directory nei sistemi Linux. Se usi un gestore di file desktop come Gnome's Files o KDE's Dolphin, puoi eliminare file e directory usando l'interfaccia utente grafica del gestore. Ma se stai lavorando su un server senza testa o vuoi rimuovere più directory contemporaneamente, l'opzione migliore è quella di eliminare le directory (cartelle) dalla riga di comando.

, spiegheremo come eliminare le directory in Linux usando i comandi rmdir , rm e find .

Prima di iniziare

Quando si rimuove una directory utilizzando il file manager Desktop, la directory viene effettivamente spostata nel Cestino e può essere facilmente ripristinata.

Prestare particolare attenzione quando si rimuovono file o directory dalla riga di comando, perché una volta che la directory viene eliminata utilizzando i comandi spiegati, non è possibile recuperarla completamente.

Sulla maggior parte dei filesystem Linux, l'eliminazione di una directory richiede l'autorizzazione di scrittura sulla directory e sul suo contenuto. In caso contrario, verrà visualizzato l'errore "Operazione non consentita".

I nomi di directory che contengono uno spazio devono essere salvati con una barra rovesciata ( / ).

Rimozione di directory con rmdir

rmdir è un'utilità della riga di comando per l'eliminazione di directory vuote. È utile quando si desidera eliminare una directory solo se è vuota, senza la necessità di verificare se la directory è vuota o meno.

Per eliminare una directory con rmdir , digitare il comando seguito dal nome della directory che si desidera rimuovere. Ad esempio, per eliminare una directory denominata dir1 digitare:

rmdir dir1

Se la directory non è vuota, verrà visualizzato il seguente errore:

rmdir: failed to remove 'dir1': No such file or directory

In questo caso, sarà necessario utilizzare il comando rm o rimuovere manualmente il contenuto della directory prima di poterlo eliminare.

Rimozione di directory con rm

rm è un'utilità della riga di comando per l'eliminazione di file e directory. A differenza di rmdir il comando rm può eliminare sia le directory vuote che quelle non vuote.

Per impostazione predefinita, se utilizzato senza alcuna opzione rm non rimuove le directory. Per eliminare una directory vuota, utilizzare l'opzione -d ( --dir ) e per eliminare una directory non vuota e tutto il suo contenuto utilizza l'opzione -r ( --recursive o -R ).

Ad esempio per eliminare una directory denominata dir1 insieme a tutto il suo contenuto, digitare:

rm -r dir1

Se una directory o un file all'interno della directory sono protetti da scrittura, verrà richiesto di confermare l'eliminazione. Per rimuovere una directory senza che sia richiesto utilizzare l'opzione -f :

rm -rf dir1

Per rimuovere più directory contemporaneamente, utilizzare il comando rm seguito dai nomi dei nomi delle directory separati da spazio. Il comando seguente rimuoverà ogni directory elencata e il loro contenuto:

rm -r dir1 dir2 dir3

L'opzione -i dice a rm di richiedere di confermare l'eliminazione di ogni sottodirectory e file. Se la directory contiene molti file, questo può essere un po 'fastidioso, quindi potresti considerare di usare l'opzione -I che ti chiederà solo una volta prima di procedere con l'eliminazione.

rm -rI dir1

Per rimuovere la directory digitare y e Enter .

rm: remove 1 argument recursively? y

È inoltre possibile utilizzare espansioni regolari per abbinare ed eliminare più directory. Ad esempio, per rimuovere tutte le directory di primo livello nella directory corrente che termina con _bak , utilizzare il comando seguente:

rm -r *_bak

L'uso di espansioni regolari durante la rimozione di directory può essere rischioso. Si consiglia innanzitutto di elencare le directory con il comando ls modo da poter vedere quali directory verranno eliminate prima di eseguire il comando rm .

Rimozione delle directory con find

find è un'utilità della riga di comando che consente di cercare file e directory in base a una determinata espressione ed eseguire un'azione su ciascun file o directory corrispondente.

Lo scenario più comune è utilizzare il comando find per eliminare le directory in base a un modello. Ad esempio, per eliminare tutte le directory che terminano con _cache nella directory di lavoro corrente dovresti eseguire:

find. -type d -name '*_cache' -exec rm -r {} +

Analizziamo il comando sopra:

  • /dir - cerca ricorsivamente nella directory di lavoro corrente ( . ). -type d - limita la ricerca alle directory. -name '*_cache' - cerca solo le directory che terminano con _cache -exec - esegue un comando esterno con argomenti opzionali, in questo caso è rm -r . {} + - aggiunge i file trovati alla fine del comando rm .

Rimozione di tutte le directory vuote

Per rimuovere tutte le directory vuote in un albero di directory, utilizzare:

find /dir -type d -empty -delete

Ecco una spiegazione per le opzioni utilizzate:

  • /dir - cerca ricorsivamente nella directory /dir . -type d - limita la ricerca alle directory. -empty : limita la ricerca solo alle directory vuote. -delete : elimina tutte le directory vuote trovate nella sottostruttura. -delete può eliminare solo le directory vuote.

Utilizzare l'opzione -delete con estrema cautela. La riga di comando trova viene valutata come espressione e se si aggiunge prima l'opzione -delete , il comando eliminerà tutto sotto i punti di partenza specificati. Utilizzare sempre -delete come ultima opzione e prima di eliminare, testare prima il comando senza l'opzione -delete .

/ bin / rm: elenco degli argomenti troppo lungo

Questo messaggio di errore appare quando si utilizza il comando rm per rimuovere una directory che contiene un numero enorme di file. Ciò accade perché il numero di file è maggiore del limite di sistema sulla dimensione dell'argomento della riga di comando.

Esistono diverse soluzioni a questo problema. Ad esempio, è possibile eseguire il cd nella directory e manualmente o utilizzando un ciclo per rimuovere le sottodirectory una alla volta.

La soluzione più semplice è innanzitutto eliminare tutti i file all'interno della directory con il comando find quindi eliminare la directory:

find /dir -type f -delete && rm -r /dir

Conclusione

Con rm and find puoi eliminare le directory in base a diversi criteri in modo rapido ed efficiente.

L'eliminazione delle directory è un processo semplice e facile, ma è necessario fare attenzione a non eliminare dati importanti.

rm rmdir trova terminale