GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo eliminar todos los archivos en un directorio excepto algunos?

A rm todos menos u,p en bash solo escribe:

rm !(u|p)

Esto requiere que se configure la siguiente opción:

shopt -s extglob

Ver más:glob - Wiki de Greg


Yo lo que hago en esos casos es teclear

rm *

Luego presiono Ctrl +X ,* para expandir * en todos los nombres de archivos visibles.

Luego puedo eliminar los dos archivos que me gusta mantener de la lista y finalmente ejecutar la línea de comando.


Puedes usar find

find . ! -name u ! -name p -maxdepth 1 -type f -delete
  • ! niega la siguiente expresión
  • -name especifica un nombre de archivo
  • -maxdepth 1 hará que el proceso de búsqueda se realice únicamente en el directorio especificado (find por defecto atraviesa directorios)
  • -type f procesará solo archivos (y no, por ejemplo, directorios)
  • -delete eliminará los archivos

A continuación, puede ajustar las condiciones mirando la página de manual de find

Actualizar

  • Tenga en cuenta que el orden de los elementos de las expresiones es significativo (consulte la documentación)
  • Pruebe su comando primero usando -print en lugar de -delete

    find . ! -name u ! -name p -maxdepth 1 -type f -print
    

Linux
  1. Eliminar archivos y directorios por sus nombres. ¿El fichero o directorio no existe?

  2. ¿Cómo eliminar todos los archivos con una extensión particular en una carpeta particular?

  3. ¿Usar Buscar para encontrar cierto directorio y eliminar todos los archivos excepto un directorio?

  4. Cómo encontrar todos los archivos con tamaño de archivo cero (0) bytes en un directorio recursivamente

  5. Shell - ¿Cómo encontrar el directorio de algún comando?

Cómo contar archivos en el directorio en Linux

¿Eliminar todos los archivos excepto en un determinado subdirectorio con Buscar?

Cómo encontrar todos los archivos dispersos en Linux

¿Cómo contar el número de archivos en cada directorio?

Cómo encontrar todos los archivos de cero bytes en el directorio

Eliminar todos menos 1000 archivos aleatorios en un directorio