Ho le directory del file system Ubuntu nella directory principale e ho accidentalmente copiato centinaia di file nella directory principale.
Ho provato intuitivamente a rimuovere i file copiati escludendo il file system come
rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.
ma non funziona. Qual è il modo corretto per escludere alcune directory mentre si elimina il tutto?
EDIT:Non provare mai nessuno dei comandi qui senza sapere cosa fare!
Risposta accettata:
Dato che stai usando bash
:
shopt -s extglob
echo rm -rf ./!(bin|sbin|usr|...)
Consiglio di aggiungere echo
all'inizio della riga di comando quando si esegue qualcosa che potenzialmente può far esplodere l'intero sistema. Rimuovilo se sei soddisfatto del risultato.
Nota:il comando sopra non rimuoverà i file nascosti (quelli il cui nome inizia con un punto). Se vuoi rimuovere anche loro, attiva anche dotglob
opzione:
shopt -s dotglob