Tengo directorios del sistema de archivos de ubuntu en el directorio raíz y accidentalmente copié cientos de archivos en el directorio raíz.
Intuitivamente traté de eliminar los archivos copiados excluyendo el sistema de archivos como
rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.
pero no funciona. ¿Cuál es la forma correcta de excluir algunos directorios mientras se elimina todo?
EDITAR:¡Nunca pruebes ninguno de los comandos aquí sin saber qué hacer!
Respuesta aceptada:
Dado que está utilizando bash
:
shopt -s extglob
echo rm -rf ./!(bin|sbin|usr|...)
Recomiendo agregar echo
al comienzo de la línea de comando cuando está ejecutando algo que potencialmente puede explotar todo el sistema. Quítelo si está satisfecho con el resultado.
Nota:el comando anterior no eliminará los archivos ocultos (aquellos cuyo nombre comienza con un punto). Si desea eliminarlos también, active también dotglob
opción:
shopt -s dotglob