¿Cómo puedo verificar si el archivo es binario o sin texto para abrir el archivo?linux + verificar si el archivo es de texto o binario
Respuesta
No hay forma de estar seguro sin mirar dentro del archivo. Sin embargo, no tienes que abrirlo con un editor y ver si tienes una pista. Es posible que desee examinar el comando file
: http://linux.die.net/man/1/file
El gato de Schrödinger, me temo.
No hay forma de determinar el contenido de un archivo sin abrirlo. El sistema de archivos no almacena metadatos relacionados con los contenidos.
Si no es un requisito difícil abrir el archivo, entonces hay una serie de soluciones disponibles para usted.
Editar:
Se ha sugerido en una serie de comentarios y respuestas que file(1)
es una buena manera de determinar el contenido. De hecho, es. Sin embargo, file(1)
abre el archivo, que estaba prohibido en la pregunta. Ver la penúltima línea en el siguiente ejemplo:
> echo 'This is not a pipe' > file.jpg && strace file file.jpg 2>&1 | grep file.jpg
execve("/usr/bin/file", ["file", "file.jpg"], [/* 56 vars */]) = 0
lstat64("file.jpg", {st_mode=S_IFREG|0644, st_size=19, ...}) = 0
stat64("file.jpg", {st_mode=S_IFREG|0644, st_size=19, ...}) = 0
open("file.jpg", O_RDONLY|O_LARGEFILE) = 3
write(1, "file.jpg: ASCII text\n", 21file.jpg: ASCII text
Si usted está tratando de hacerlo desde una consola de comandos a continuación, el comando file
será tener una pista sobre qué tipo de archivo es. Si es texto, generalmente incluirá la palabra texto en su descripción.
No conozco ningún método 100% para determinar esto, pero el comando de archivo es probablemente el más preciso.
Por supuesto que abre el archivo y no será 100% seguro. –
De hecho, sí, aunque no estaba seguro de si era reacio a abrir el archivo él mismo o tener una utilidad para abrirlo. He declarado que no hay un método 100% seguro para hacer esto. –
En Unix, un archivo es solo algunos bytes. Por lo tanto, sin abrir el archivo, no puede averiguar el 100% que es ASCII o Binario.
Puede usar las herramientas disponibles y profundizar para hacerlo a prueba de tontos.
- archivo
- cat -v
La forma correcta para determinar el tipo de un archivo es utilizar el (1) comando de archivo.
También debe tener en cuenta que los archivos codificados en UTF-8 son archivos de "texto", pero pueden contener datos que no sean ASCII. Otras codificaciones también tienen este problema. En el caso de texto codificado con code page, puede que no sea posible determinar inequívocamente si un archivo es texto o no.
El archivo (1) de comandos se verá en la estructura de un archivo para tratar de determinar lo que contiene - desde el archivo (1) página de manual:
El tipo mostrado contendrá usualmente una de las palabras texto (el archivo sólo contiene caracteres de imprenta y unos pocos caracteres de control común y es probable que sea seguro de leer en un archivo ASCII terminal), ejecutable (el archivo contiene el resultado de la compilación de un programa en una forma comprensible hasta cierto núcleo de UNIX u otro), o datos significan nada otra cosa (datos suele ser ‘binario’ o no imprimible).
En relación con diferentes codificaciones de caracteres, el archivo (1) página de manual tiene esto que decir:
Si un archivo no coincide con ninguna de las entradas en el archivo de la magia, es examinado para ver si parece ser un archivo de texto. ASCII, ISO-8859-x, no ISO 8 bits extendidos-juegos de caracteres ASCII (como los utilizados en Macintosh y sistemas de PC IBM), UTF-8-codificado Unicode, UTF-16-codificado Unicode, y Los juegos de caracteres EBCDIC se pueden distinguir por los diferentes rangos y secuencias de bytes que constituyen texto imprimible en cada conjunto. Si un archivo supera cualquiera de estas pruebas, se informa sobre su conjunto de caracteres. ASCII, Los archivos ISO-8859-x, UTF-8 y ASCII extendido se identifican como 'texto' porque se leerán principalmente en casi cualquier terminal; UTF-16 y EBCDIC son solo 'datos de caracteres' porque, si bien contienen texto, es texto que requerirá traducción antes de que pueda leerse.
Así, un texto será identificado como texto, pero algunos pueden ser identificados como datos de carácter. Deberá determinar usted mismo si esto es importante para su aplicación y tomar las medidas adecuadas.
- 1. ¿Cómo comprobar si el archivo es binario?
- 2. Ruby: Cómo determinar si el archivo que se lee es binario o texto
- 3. Cómo verificar si el archivo es ASCII o binario en PHP
- 4. ¿Comprueba si un archivo es binario o ASCII con Node.js?
- 5. C# Verificar si el archivo de texto tiene contenido
- 6. ¿Cómo verificar si System.Net.WebClient.DownloadData está descargando un archivo binario?
- 7. ¿Cómo puedo verificar si un binario compilado es de 32 bits o de 64 bits?
- 8. Java, Runtime.exec o ProcessBuilder: cómo saber si el archivo es shell o binario?
- 9. ¿Cómo se determina si Git maneja un archivo como binario o como texto?
- 10. ¿Cómo verificar el directorio existe o no en Linux.?
- 11. PHP ¿cómo puedo verificar si un archivo es mp3 o archivo de imagen?
- 12. ¿Es posible verificar si una notificación es visible o cancelada?
- 13. Cómo saber si un archivo binario es de lanzamiento o depuración en win y * nix
- 14. Verificar si el documento es ROOT node
- 15. Verificar si mi instancia de node.js es dev o producción
- 16. ¿Determinando el tipo de archivo binario/texto en Java?
- 17. ¿Cómo verificar si el valor enum es válido?
- 18. c linux compruebe si el archivo se actualiza/cambia/modifica?
- 19. ¿Cómo verificar si un parámetro es verdadero o falso?
- 20. ¿Debo verificar si un objeto es nulo primero o segundo?
- 21. comprobando si se compiló un binario con "-static"
- 22. Determine la arquitectura de destino del archivo binario en Linux (biblioteca o ejecutable)
- 23. ¿Puedo verificar C (++) si una matriz es 0 (o falsa)?
- 24. Verificar si la fecha es esta o más grande
- 25. Usando el comando 'archivo' de linux para determinar el tipo (es decir, imagen, audio o video)
- 26. ¿Cómo verificar una cadena si es un ASCII o no?
- 27. ¿Hay alguna forma de verificar si el texto está en cirílico o en latín usando C#?
- 28. Verificar el nombre de distribución de Linux
- 29. Linux: ejecutar un archivo binario en un script
- 30. ¿cómo puedo verificar si existe un archivo?
Es difícil saber si esto está relacionado con la programación o si se debe migrar a SuperUser.com (¿se busca una utilidad existente?). – Johnsyweb
El texto es, en el mejor de los casos, un subconjunto del binario, si no meramente una interpretación. Considere un archivo de un byte que contenga '0x65'. Ahora dime absolutamente si esto es binario o texto. – MSalters
qué tal copiar el archivo antes de verificarlo copiar -> abrir -> verificar -> eliminar –