GNU/Linux >> Tutoriales Linux >  >> Linux

¿Eliminar todos los archivos/directorios excepto un archivo?

Tengo un directorio que contiene una gran cantidad de archivos. Quiero eliminar todos los archivos excepto file.txt. ¿Cómo hago esto?

Hay demasiados archivos para eliminar los no deseados individualmente y sus nombres son demasiado diversos para usar * para eliminarlos todos excepto este archivo.

Alguien sugirió usar

rm !(file.txt)

Pero no funciona. Devuelve:

Badly placed ()'s 

Mi sistema operativo es Scientific Linux 6.

¿Alguna idea?

Respuesta aceptada:

POSIXly:

find . ! -name 'file.txt' -type f -exec rm -f {} +

eliminará todos los archivos regulares (recursivamente, incluidos los ocultos) excepto file.txt . Para eliminar directorios, cambie -type f a -type d y agregue -r opción para rm .

En bash , para usar rm -- !(file.txt) , debe habilitar extglob:

$ shopt -s extglob 
$ rm -- !(file.txt)

(o llamando a bash -O extglob )

Tenga en cuenta que extglob solo funciona en bash y la familia de conchas Korn. Y usando rm -- !(file.txt) puede causar una Argument list too long error.

En zsh , puedes usar ^ para negar el patrón con extendedglob habilitado:

$ setopt extendedglob
$ rm -- ^file.txt

o usando la misma sintaxis con ksh y bash con opciones ksh_glob y no_bare_glob_qual activado.


Linux
  1. Cómo eliminar todos los archivos de una carpeta excepto un archivo específico en Linux

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

  3. ¿Cómo eliminar todos los archivos excepto un archivo con nombre de una carpeta específica?

  4. Mover todos los archivos excepto uno

  5. Linux:elimine las extensiones de archivo para varios archivos

Comando ls en Linux para listar archivos

Convertir todas las extensiones de archivo a minúsculas

¿Cómo puedo buscar archivos y comprimirlos en un archivo zip?

¿Cómo dividir un archivo de texto en varios archivos *.txt?

¿Encontrar directorios con todos los archivos dentro de más de X?

¿Cómo establecer permisos de archivo predeterminados para todas las carpetas/archivos en un directorio?