fileKomut kodlaması hakkında "en iyi tahmin" yapıyor. Kodlama hakkında bilgi yazdırmaya -izorlamak fileiçin parametreyi kullanın .
gösteri:
$ file -i *
umlaut-iso88591.txt: text/plain; charset=iso-8859-1
umlaut-utf16.txt: text/plain; charset=utf-16le
umlaut-utf8.txt: text/plain; charset=utf-8
Dosyaları nasıl oluşturduğum:
$ echo ä > umlaut-utf8.txt
Günümüzde her şey utf-8. Ama kendini ikna et:
$ hexdump -C umlaut-utf8.txt
00000000 c3 a4 0a |...|
00000003
Https://en.wikipedia.org/wiki/Ä#Computer_encoding ile karşılaştırın
Diğer kodlamalara dönüştür:
$ iconv -f utf8 -t iso88591 umlaut-utf8.txt > umlaut-iso88591.txt
$ iconv -f utf8 -t utf16 umlaut-utf8.txt > umlaut-utf16.txt
Altıgen dökümü kontrol et:
$ hexdump -C umlaut-iso88591.txt
00000000 e4 0a |..|
00000002
$ hexdump -C umlaut-utf16.txt
00000000 ff fe e4 00 0a 00 |......|
00000006
Üçünü de karıştırarak "geçersiz" bir şey oluşturun:
$ cat umlaut-iso88591.txt umlaut-utf8.txt umlaut-utf16.txt > umlaut-mixed.txt
Ne filediyor:
$ file -i *
umlaut-iso88591.txt: text/plain; charset=iso-8859-1
umlaut-mixed.txt: application/octet-stream; charset=binary
umlaut-utf16.txt: text/plain; charset=utf-16le
umlaut-utf8.txt: text/plain; charset=utf-8
olmadan -i:
$ file *
umlaut-iso88591.txt: ISO-8859 text
umlaut-mixed.txt: data
umlaut-utf16.txt: Little-endian UTF-16 Unicode text, with no line terminators
umlaut-utf8.txt: UTF-8 Unicode text
fileKomut "geçerli" veya "geçersiz" nin hiçbir fikri yok. Sadece bazı baytları görür ve kodlamanın ne olacağını tahmin etmeye çalışır. İnsanlar olarak, bir dosyanın "yanlış" kodlamada bazı ümitlere sahip bir metin dosyası olduğunu anlayabiliriz. Fakat bilgisayar olarak bir çeşit yapay zekaya ihtiyaç duyacaktır.
Birisi, sezgisel mirasının filebir çeşit yapay zeka olduğunu iddia edebilir . Ancak, öyle olsa bile, çok sınırlı bir tanesi.
İşte filekomut hakkında daha fazla bilgi : http://www.linfo.org/file_command.html