Cómo eliminar de forma masiva archivos zip sin extensión en Linux

Cómo eliminar de forma masiva archivos zip sin extensión en Linux

Tengo una carpeta llena de archivos diferentes pero sin extensión. ¿Cómo puedo eliminar todos los archivos que son archivos zip?

Respuesta1

En mi Kubuntu el siguiente comando:

file -b --mime-type path/to/some/zip

devoluciones:

application/zip

Puedo usarlo para detectar todos los archivos zip en el directorio actual (con subdirectorios). El comando es:

find . -type f -exec sh -c '
   for f do
   file -b --mime-type "$f" | grep -q "^application/zip$" && {
      printf "%s\n" "$f"
      # rm "$f"
      } 
   done
' find-sh {} +

Si el resultado parece correcto, descomente rm "$f"(elimine #) para eliminar los archivos.

Notas:

  • Tampoco -blo --mime-typeson las opciones portátiles de file. Si fileno los admite, compruebe las file path/to/some/zipimpresiones desnudas. Puede ser:

    path/to/some/zip: Zip archive data, …
    

    Donde denota información adicional. Si necesitara confiar en este resultado entonces mi grepcomando sería:

    grep -q ": Zip archive data"
    

    pero (posiblemente) detectaría falsamente archivos con esta misma cadena en el nombre. De todos modos, ajústalo grepa tus fileimpresiones.

  • find-shse explica aquí:¿Cuál es el segundo pez sh -c 'some shell code' sh?

  • Al comando no le importan los nombres de archivos (en Linux lo que usted llama "extensión" es solo una parte del nombre de archivo). Responde a la pregunta que hizo en el cuerpo de la publicación ("¿Cómo puedo eliminar todos los archivos que son archivos zip?"), no al título ("Cómo eliminar archivos zip de forma masivasin extensión").

información relacionada