Wie kann ich überprüfen, ob die Datei Binär oder Text ist, ohne die Datei zu öffnen?linux + verify, wenn Datei ist Text oder binär
Antwort
Es gibt keine Möglichkeit, sicher zu sein, ohne in die Datei zu schauen. Hoewever, Sie müssen es nicht mit einem Redakteur öffnen und sich selbst davon überzeugen, eine Ahnung zu haben. Vielleicht möchten Sie in den file
Befehl schauen: http://linux.die.net/man/1/file
Schrödingers Katze, fürchte ich.
Es gibt keine Möglichkeit, den Inhalt einer Datei zu ermitteln, ohne sie zu öffnen. Das Dateisystem speichert keine Metadaten zu den Inhalten.
Wenn das Öffnen der Datei keine schwierige Anforderung ist, dann stehen Ihnen eine Reihe von Lösungen zur Verfügung.
Edit:
Es hat sich in einer Reihe von Kommentaren und Antworten vorgeschlagen, dass file(1)
ein guter Weg, um den Inhalt zu bestimmen. Es ist wirklich. Jedoch öffnet file(1)
die Datei, die in der Frage verboten wurde. Siehe die vorletzte Zeile in dem folgenden Beispiel:
> 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
Wenn Sie versuchen, diese von einem Kommando-Shell zu tun, dann wird der file
Befehl eine Vermutung nehmen, was Dateityp es sich handelt. Wenn es Text ist, wird es im Allgemeinen den Worttext in seiner Beschreibung enthalten.
Mir ist keine 100% Methode bekannt, dies zu bestimmen, aber der Dateibefehl ist wahrscheinlich der genaueste.
Natürlich öffnet das die Datei und wird nicht 100% sicher sein. –
Tatsächlich tut es das, obwohl ich nicht sicher war, ob er es ablehnte, die Datei selbst zu öffnen oder ein Dienstprogramm zu öffnen. Ich habe festgestellt, dass es keine 100% sichere Methode gibt, dies zu tun. –
In Unix ist eine Datei nur einige Bytes. Also, ohne die Datei zu öffnen, können Sie nicht 100% herausfinden, es ist ASCII oder Binär.
Sie können nur Werkzeuge verwenden, die Ihnen zur Verfügung stehen, und tiefer graben, um sie narrensicher zu machen.
- Datei
- cat -v
Der richtige Weg, um den Typ einer Datei zu bestimmen, ist die Datei (1) Befehl zu verwenden.
Sie müssen auch beachten, dass UTF-8-kodierte Dateien "Text" -Dateien sind, aber auch Nicht-ASCII-Daten enthalten können. Andere Codierungen haben dieses Problem ebenfalls. Im Fall von Text, der mit einer code page codiert ist, kann möglicherweise nicht eindeutig festgestellt werden, ob eine Datei Text ist oder nicht.
Die Datei (1) Befehl an der Struktur einer Datei aussehen wird, um zu versuchen und zu bestimmen, was sie enthält - aus der Datei (1) man-Seite:
Die gedruckte Art in der Regel eines enthält Wörter Text (die Datei enthält nur druckbare Zeichen und ein paar gemeinsame Steuerzeichen und ist wahrscheinlich sicher auf einem ASCII-Terminal zu lesen), ausführbare (die Datei enthält das Ergebnis eines Programms in einem verständlichen Form zu einem gewissen UNIX-Kernel oder eine andere Zusammenstellung) oder Daten etwas bedeutet sonst (Daten in der Regel ist Binärdienst oder nicht druckbare).
Im Hinblick auf unterschiedliche Zeichencodierungen, wird die Datei (1) man-Seite folgende sagen:
Wenn eine Datei in der magischen Datei eine der Einträge nicht übereinstimmt, ist es überprüft, ob es sich um eine Textdatei handelt. ASCII, ISO-8859-x, nicht ISO 8-Bit erweiterte ASCII-Zeichensätze (wie die auf Macintosh und IBM PC-Systeme verwendeten), UTF-8-codierten Unicode, UTF-16-codierten Unicode, und EBCDIC-Zeichensätze können durch die verschiedenen Bereiche und Sequenzen von Bytes unterschieden werden, die in jedem Satz druckbaren Text darstellen. Wenn eine Datei einen dieser Tests besteht, wird ihr Zeichensatz gemeldet. ASCII, ISO-8859-x, UTF-8 und erweiterte ASCII-Dateien werden als 'text' identifiziert, weil sie auf fast jedem Terminal größtenteils lesbar sind; UTF-16 und EBCDIC sind nur 'Zeichendaten', da sie Text enthalten, der übersetzt werden muss, bevor er gelesen werden kann.
So wird ein Text als Text identifiziert werden, aber einige können als Zeichendaten identifiziert werden. Sie müssen selbst bestimmen, ob dies für Ihre Anwendung von Bedeutung ist und geeignete Maßnahmen ergreifen.
- 1. C++ Von Text-Datei zu Binär-Datei
- 2. ld-linux --verify exit codes
- 3. Überprüfen, ob eine STL-Datei ASCII oder binär ist
- 4. Automatisierung der Installation von Binär in Linux
- 5. Ruby: Wie zu bestimmen, ob Datei gelesen wird binär oder Text
- 6. Binär "Schwanz" eine Datei
- 7. verify Überschrift Text in CSS-Selektor
- 8. Binär-String in Binär- oder Dezimalwert umwandeln
- 9. Binär zu Text in Java
- 10. Binär oder "|" in Ruby
- 11. Verify-Datei wird in Java kopiert
- 12. Wie Bazaar sagen, dass eine Datei binär ist
- 13. Wo ist Jaybird für ARM-Binär/Quelle?
- 14. Linux - Finden Sie, wenn Prozess bereit ist oder läuft
- 15. Wenn Datei ist eine Verknüpfung auf LINUX OS
- 16. android.view.inflateexception binär xml datei zeile
- 17. pthreads kompilieren aber binär ist nicht erstellt
- 18. So konvertieren Sie LSB extrahierte Daten in Text oder binär in Text
- 19. Datei binär in XNA lesen?
- 20. Beste weg speicher binär oder bild dateien
- 21. Konvertieren von Text in binär in Java
- 22. Senden Sie Text und Binär über Websocket
- 23. svn diff: Datei als Binär-Typ
- 24. Konvertieren Sie alle Linux-Manpages in Text/HTML oder Markdown
- 25. Warum denkt Git, dass meine CS-Datei binär ist?
- 26. Binär Hashing - was ist das?
- 27. Arbeiten notify/verify ohne Senden?
- 28. eine Delphi Binär-Datei in Python
- 29. Binär-Chunk in einer Datei finden
- 30. php SSL3_GET_SERVER_CERTIFICATE: Zertifikat verify
Es ist schwer zu sagen, ob das mit der Programmierung zusammenhängt oder ob es auf SuperUser.com migriert werden soll (ist ein bestehendes Dienstprogramm gefragt?). – Johnsyweb
Text ist bestenfalls eine Teilmenge der binären, wenn nicht nur eine Interpretation. Betrachten Sie eine Ein-Byte-Datei, die '0x65' enthält. Jetzt sag mir unbedingt ob das binär oder text ist. – MSalters
Was ist mit dem Kopieren der Datei vor der Überprüfung. kopieren -> öffnen -> verifizieren -> löschen –