Tengo directorios del sistema de archivos ubuntu en el directorio raíz y accidentalmente copié cientos de archivos en el directorio raíz.
Intenté intuitivamente eliminar 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 el conjunto?
EDITAR: ¡ Nunca intentes ninguno de los comandos aquí sin saber qué hacer!
mc
. Seleccione todo con*
, luego deseleccione archivos específicos con-
o laInsert
tecla./bin/bash
mc
es Midnight Commander, una imitación muy útil de Norton Commander. Se ejecuta en una terminal. (Tanto Midnight Commander como Norton Commander son ejemplos de lo que se llama un administrador de archivos ortodoxo ).Respuestas:
Como estás usando
bash
:Recomiendo agregar
echo
al comienzo de la línea de comando cuando esté ejecutando algo que potencialmente puede hacer explotar todo el sistema. Elimínelo si está satisfecho con el resultado.Nota: El comando anterior no eliminará los archivos ocultos (aquellos cuyo nombre comienza por un punto). Si desea eliminarlos también, active también la
dotglob
opción:fuente
rm -rf ./!(bin,sbin,..)
separados por comas, pero elimina todos los directorios.!(...)
sintaxis? Del ejemplo, pensé intuitivamentels ./!(*/)
que solo incluiría una lista de archivos, pero no funciona de esa manera.*
u otros globos.Este comando mostrará todos los no directorios en
/
:Una vez que se haya asegurado absolutamente de que no hay archivos que desee conservar, puede usar:
Más seguro sería moverlos a otro lugar para asegurarse de que no está eliminando algo que desea conservar:
Si, además de los archivos, también tiene directorios que ha agregado a la raíz del sistema de archivos, esto podría automatizarse excluyendo los directorios LSB de un sistema automatizado
mv
orm
, honestamente, ya que estamos tratando de purgar cosas en el raíz del sistema de archivos, le sugiero encarecidamente que considere hacerlo manualmente si es posible.Si esto no es factible, algo como esto podría hacer el truco:
Una vez que haya pasado la prueba de gritos (es decir, su sistema aún se ejecuta y no grita con angustia), puede eliminar el contenido de
/root/preserve/
.Nota importante: hagas lo que hagas, ni siquiera pienses en ejecutar ninguna permutación de
rm -fr [ANYTHING GOES HERE] /
.fuente
rm
. Como un guión conrm -fr $somepath/
sinsomepath
inicializar. Podría haber ido más lejos al expresar cuán grave es esto, pero opté por seguir siendo amigable con la familia en mi advertencia.Esto debería hacer el trabajo (aunque no de la misma manera que el OP pregunta):
eliminar todos los archivos / directorios que desea mantener
Si todos sus archivos tienen el mismo formato de nombre, fecha u otra cosa, existen otros métodos.
Vería los inodes, y vería si son secuenciales a través de ls -i | sort y, si lo son, los nuevos archivos tendrán inodos más grandes. Luego, utilizando el mismo tipo de proceso que el anterior ...
en el comando de corte anterior, verifique primero su lista de inodes para asegurarse de que sea la cantidad correcta.
fuente